blob: dce9c1779d53c35e6ab9652dafbb80927ecc110e [file] [log] [blame]
Elliott Hughes82be86d2017-09-20 17:00:17 -07001 _ _ ____ _
2 ___| | | | _ \| |
3 / __| | | | |_) | |
4 | (__| |_| | _ <| |___
5 \___|\___/|_| \_\_____|
Lucas Eckels9bd90e62012-08-06 15:07:02 -07006
Elliott Hughes82be86d2017-09-20 17:00:17 -07007 Changelog
Lucas Eckels9bd90e62012-08-06 15:07:02 -07008
Elliott Hughescac39802018-04-27 16:19:43 -07009Version 7.59.0 (13 Mar 2018)
10
11Daniel Stenberg (13 Mar 2018)
12- release: 7.59.0
13
14Kamil Dudka (13 Mar 2018)
15- tests/.../spnego.py: fix identifier typo
16
17 Detected by Coverity Analysis:
18
19 Error: IDENTIFIER_TYPO:
20 curl-7.58.0/tests/python_dependencies/impacket/spnego.py:229: identifier_typo: Using "SuportedMech" appears to be a typo:
21 * Identifier "SuportedMech" is only known to be referenced here, or in copies of this code.
22 * Identifier "SupportedMech" is referenced elsewhere at least 4 times.
23 curl-7.58.0/tests/python_dependencies/impacket/smbserver.py:2651: identifier_use: Example 1: Using identifier "SupportedMech".
24 curl-7.58.0/tests/python_dependencies/impacket/smbserver.py:2308: identifier_use: Example 2: Using identifier "SupportedMech".
25 curl-7.58.0/tests/python_dependencies/impacket/spnego.py:252: identifier_use: Example 3: Using identifier "SupportedMech" (2 total uses in this function).
26 curl-7.58.0/tests/python_dependencies/impacket/spnego.py:229: remediation: Should identifier "SuportedMech" be replaced by "SupportedMech"?
27
28 Closes #2379
29
30Daniel Stenberg (13 Mar 2018)
31- CURLOPT_COOKIEFILE.3: "-" as file name means stdin
32
33 Reported-by: Aron Bergman
34 Bug: https://curl.haxx.se/mail/lib-2018-03/0049.html
35
36 [ci skip]
37
38- Revert "hostip: fix compiler warning: 'variable set but not used'"
39
40 This reverts commit a577059f92fc65bd6b81717f0737f897a5b34248.
41
42 The assignment really needs to be there or we risk working with an
43 uninitialized pointer.
44
45Michael Kaufmann (12 Mar 2018)
46- limit-rate: fix compiler warning
47
48 follow-up to 72a0f62
49
50Viktor Szakats (12 Mar 2018)
51- checksrc.pl: add -i and -m options
52
53 To sync it with changes made for the libssh2 project.
54 Also cleanup some whitespace.
55
56- curl-openssl.m4: fix spelling [ci skip]
57
58- FAQ: fix a broken URL [ci skip]
59
60Daniel Stenberg (12 Mar 2018)
61- http2: mark the connection for close on GOAWAY
62
63 ... don't consider it an error!
64
65 Assisted-by: Jay Satiro
66 Reported-by: Łukasz Domeradzki
67 Fixes #2365
68 Closes #2375
69
70- credits: Viktor prefers without accent
71
72- openldap: white space changes, fixed up the copyright years
73
74- openldap: check ldap_get_attribute_ber() results for NULL before using
75
76 CVE-2018-1000121
77 Reported-by: Dario Weisser
78 Bug: https://curl.haxx.se/docs/adv_2018-97a2.html
79
80- FTP: reject path components with control codes
81
82 Refuse to operate when given path components featuring byte values lower
83 than 32.
84
85 Previously, inserting a %00 sequence early in the directory part when
86 using the 'singlecwd' ftp method could make curl write a zero byte
87 outside of the allocated buffer.
88
89 Test case 340 verifies.
90
91 CVE-2018-1000120
92 Reported-by: Duy Phan Thanh
93 Bug: https://curl.haxx.se/docs/adv_2018-9cd6.html
94
95- readwrite: make sure excess reads don't go beyond buffer end
96
97 CVE-2018-1000122
98 Bug: https://curl.haxx.se/docs/adv_2018-b047.html
99
100 Detected by OSS-fuzz
101
102- BUGS: updated link to security process
103
104- limit-rate: kick in even before "limit" data has been received
105
106 ... and make sure to avoid integer overflows with really large values.
107
108 Reported-by: 刘佩东
109 Fixes #2371
110 Closes #2373
111
112- docs/SECURITY.md -> docs/SECURITY-PROCESS.md
113
114- SECURITY.md: call it the security process
115
116Michael Kaufmann (11 Mar 2018)
117- Curl_range: fix FTP-only and FILE-only builds
118
119 follow-up to e04417d
120
121- hostip: fix compiler warning: 'variable set but not used'
122
123Daniel Stenberg (11 Mar 2018)
124- HTTP: allow "header;" to replace an internal header with a blank one
125
126 Reported-by: Michael Kaufmann
127 Fixes #2357
128 Closes #2362
129
130- http2: verbose output new MAX_CONCURRENT_STREAMS values
131
132 ... as it is interesting for many users.
133
134- SECURITY: distros' max embargo time is 14 days now
135
136Patrick Monnerat (8 Mar 2018)
137- curl tool: accept --compressed also if Brotli is enabled and zlib is not.
138
139Daniel Stenberg (5 Mar 2018)
140- THANKS + mailmap: remove duplicates, fixup full names
141
142- [sergii.kavunenko brought this change]
143
144 WolfSSL: adding TLSv1.3
145
146 Closes #2349
147
148- RELEASE-NOTES/THANKS: synced with cc1d4c505
149
150- [Richard Alcock brought this change]
151
152 winbuild: prefer documented zlib library names
153
154 Check for existence of import and static libraries with documented names
155 and use them if they do. Fallback to previous names.
156
157 According to
158 https://github.com/madler/zlib/blob/master/win32/README-WIN32.txt on
159 Windows, the names of the import library is "zdll.lib" and static
160 library is "zlib.lib".
161
162 closes #2354
163
164Marcel Raad (4 Mar 2018)
165- krb5: use nondeprecated functions
166
167 gss_seal/gss_unseal have been deprecated in favor of
168 gss_wrap/gss_unwrap with GSS-API v2 from January 1997 [1]. The first
169 version of "The Kerberos Version 5 GSS-API Mechanism" [2] from June
170 1996 already says "GSS_Wrap() (formerly GSS_Seal())" and
171 "GSS_Unwrap() (formerly GSS_Unseal())".
172
173 Use the nondeprecated functions to avoid deprecation warnings.
174
175 [1] https://tools.ietf.org/html/rfc2078
176 [2] https://tools.ietf.org/html/rfc1964
177
178 Closes https://github.com/curl/curl/pull/2356
179
180Daniel Stenberg (4 Mar 2018)
181- curl.1: mention how to add numerical IP addresses in NO_PROXY
182
183- CURLOPT_NOPROXY.3: mention how to list numerical IPv6 addresses
184
185- NO_PROXY: fix for IPv6 numericals in the URL
186
187 Added test 1265 that verifies.
188
189 Reported-by: steelman on github
190 Fixes #2353
191 Closes #2355
192
193- build: get CFLAGS (including -werror) used for examples and tests
194
195 ... so that the CI and more detects compiler warnings/errors properly!
196
197 Closes #2337
198
199Marcel Raad (3 Mar 2018)
200- curl_ctype: fix macro redefinition warnings
201
202 On MinGW and Cygwin, GCC and clang have been complaining about macro
203 redefinitions since 4272a0b0fc49a1ac0ceab5c4a365c9f6ab8bf8e2. Fix this
204 by undefining the macros before redefining them as suggested in
205 https://github.com/curl/curl/pull/2269.
206
207 Suggested-by: Daniel Stenberg
208
209Dan Fandrich (2 Mar 2018)
210- unit1307: proper cleanup on OOM to fix torture tests
211
212Marcel Raad (28 Feb 2018)
213- unit1309: fix warning on Windows x64
214
215 When targeting x64, MinGW-w64 complains about conversions between
216 32-bit long and 64-bit pointers. Fix this by reusing the
217 GNUTLS_POINTER_TO_SOCKET_CAST / GNUTLS_SOCKET_TO_POINTER_CAST logic
218 from gtls.c, moving it to warnless.h as CURLX_POINTER_TO_INTEGER_CAST /
219 CURLX_INTEGER_TO_POINTER_CAST.
220
221 Closes https://github.com/curl/curl/pull/2341
222
223- travis: update compiler versions
224
225 Update clang to version 3.9 and GCC to version 6.
226
227 Closes https://github.com/curl/curl/pull/2345
228
229Daniel Stenberg (26 Feb 2018)
230- docs/MANUAL: formfind.pl is not accessible on the site anymore
231
232 Fixes #2342
233
234Jay Satiro (24 Feb 2018)
235- curl-openssl.m4: Fix version check for OpenSSL 1.1.1
236
237 - Add OpenSSL 1.1.1 to the header/library version lists.
238
239 - Detect OpenSSL 1.1.1 library using its function ERR_clear_last_mark,
240 which was added in that version.
241
242 Prior to this change an erroneous header/library mismatch was caused by
243 lack of OpenSSL 1.1.1 detection. I tested using openssl-1.1.1-pre1.
244
245Viktor Szakats (23 Feb 2018)
246- lib655: silence compiler warning
247
248 Closes https://github.com/curl/curl/pull/2335
249
250- spelling fixes
251
252 Detected using the `codespell` tool.
253
254 Also contains one URL protocol upgrade.
255
256 Closes https://github.com/curl/curl/pull/2334
257
258Daniel Stenberg (24 Feb 2018)
259- projects/README: remove reference to dead IDN link/package
260
261 Reported-by: Stefan Kanthak and Rod Widdowson
262
263 Fixes #2325
264
265Jay Satiro (23 Feb 2018)
266- [Rod Widdowson brought this change]
267
268 winbuild: Use macros for the names of some build utilities
269
270 - Add macros to the top of the makefile for rc and mt utilities so that
271 it is easier to change their locations.
272
273 Bug: https://curl.haxx.se/mail/lib-2018-02/0075.html
274 Reported-by: Stefan Kanthak
275
276 Closes https://github.com/curl/curl/issues/2329
277
278Daniel Stenberg (23 Feb 2018)
279- TODO: remove "sha-256 digest", added in 2b5b37cb9109e7c2
280
281- curl_share_setopt.3: connection cache is shared within multi handles
282
283Jay Satiro (22 Feb 2018)
284- [Rod Widdowson brought this change]
285
286 winbuild: Use CALL to run batch scripts
287
288 Co-authored-by: Stefan Kanthak
289
290 Closes https://github.com/curl/curl/issues/2330
291 Closes https://github.com/curl/curl/pull/2331
292
293Patrick Monnerat (22 Feb 2018)
294- os400: add curl_resolver_start_callback type to ILE/RPG binding
295
296Daniel Stenberg (22 Feb 2018)
297- form.d: rephrased somewhat, added two example command lines
298
299Jay Satiro (21 Feb 2018)
300- [Francisco Sedano brought this change]
301
302 url: Add option CURLOPT_RESOLVER_START_FUNCTION
303
304 - Add new option CURLOPT_RESOLVER_START_FUNCTION to set a callback that
305 will be called every time before a new resolve request is started
306 (ie before a host is resolved) with a pointer to backend-specific
307 resolver data. Currently this is only useful for ares.
308
309 - Add new option CURLOPT_RESOLVER_START_DATA to set a user pointer to
310 pass to the resolver start callback.
311
312 Closes https://github.com/curl/curl/pull/2311
313
314- lib: CURLOPT_HAPPY_EYEBALLS_TIMEOUT => CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS
315
316 - In keeping with the naming of our other connect timeout options rename
317 CURLOPT_HAPPY_EYEBALLS_TIMEOUT to CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS.
318
319 This change adds the _MS suffix since the option expects milliseconds.
320 This is more intuitive for our users since other connect timeout options
321 that expect milliseconds use _MS such as CURLOPT_TIMEOUT_MS,
322 CURLOPT_CONNECTTIMEOUT_MS, CURLOPT_ACCEPTTIMEOUT_MS.
323
324 The tool option already uses an -ms suffix, --happy-eyeballs-timeout-ms.
325
326 Follow-up to 2427d94 which added the lib and tool option yesterday.
327
328 Ref: https://github.com/curl/curl/pull/2260
329
330Patrick Monnerat (21 Feb 2018)
331- sasl: prefer PLAIN mechanism over LOGIN
332
333 SASL PLAIN is a standard, LOGIN only a draft. The LOGIN draft says
334 PLAIN should be used instead if available.
335
336Daniel Stenberg (21 Feb 2018)
337- RELEASE-NOTES: synced with 2427d94c6
338
339Jay Satiro (20 Feb 2018)
340- [Anders Bakken brought this change]
341
342 url: Add option CURLOPT_HAPPY_EYEBALLS_TIMEOUT
343
344 - Add new option CURLOPT_HAPPY_EYEBALLS_TIMEOUT to set libcurl's happy
345 eyeball timeout value.
346
347 - Add new optval macro CURL_HET_DEFAULT to represent the default happy
348 eyeballs timeout value (currently 200 ms).
349
350 - Add new tool option --happy-eyeballs-timeout-ms to expose
351 CURLOPT_HAPPY_EYEBALLS_TIMEOUT. The -ms suffix is used because the
352 other -timeout options in the tool expect seconds not milliseconds.
353
354 Closes https://github.com/curl/curl/pull/2260
355
356- hostip: fix 'potentially uninitialized variable' warning
357
358 Follow-up to 50d1b33.
359
360 Caught by AppVeyor.
361
362Daniel Stenberg (20 Feb 2018)
363- TODO: warning if curl version is not in sync with libcurl version
364
365Jay Satiro (20 Feb 2018)
366- [Anders Bakken brought this change]
367
368 CURLOPT_RESOLVE: Add support for multiple IP addresses per entry
369
370 This enables users to preresolve but still take advantage of happy
371 eyeballs and trying multiple addresses if some are not connecting.
372
373 Ref: https://github.com/curl/curl/pull/2260
374
375Daniel Stenberg (20 Feb 2018)
376- [Sergio Borghese brought this change]
377
378 examples/sftpuploadresume: resume upload via CURLOPT_APPEND
379
380 URL: https://curl.haxx.se/mail/lib-2018-02/0072.html
381
382- curl --version: show PSL if the run-time lib has it enabled
383
384 ... not of the #define was set at build-time!
385
386- TODO: "Support in-memory certs/ca certs/keys"
387
388 removed SSLKEYLOGFILE support (fixed)
389
390 removed "consider SSL patches" (outdated)
391
392 Closes #2310
393
394- CURLOPT_HEADER.3: clarify problems with different data sizes
395
396- test1556: verify >16KB headers to the header callback
397
398- header callback: don't chop headers into smaller pieces
399
400 Reported-by: Guido Berhoerster
401 Fixes #2314
402 Closes #2316
403
404- test1154: verify that long HTTP headers get rejected
405
406- http: fix the max header length detection logic
407
408 Previously, it would only check for max length if the existing alloc
409 buffer was to small to fit it, which often would make the header still
410 get used.
411
412 Reported-by: Guido Berhoerster
413 Bug: https://curl.haxx.se/mail/lib-2018-02/0056.html
414
415 Closes #2315
416
417- CURLOPT_HEADERFUNCTION.3: fix typo from d939226813
418
419 Reported-by: Erik Johansson
420 Bug: https://github.com/curl/curl/commit/d9392268131c1b8d18dec3fa30e0bded833a5db7#commitcomment-27607495
421
422- CURLOPT_HEADERFUNCTION.3: mention folded headers
423
424- TODO: 1.1 Option to refuse usernames in URLs
425
426 Also expanded the CURL_REFUSE_CLEARTEXT section with more ideas.
427
428- TODO: 1.7 Support HTTP/2 for HTTP(S) proxies
429
430- ssh: add two missing state names
431
432 The list of state names (used in debug builds) was out of sync in
433 relation to the list of states (used in all builds).
434
435 I now added an assert to make sure the sizes of the two lists match, to
436 aid in detecting this mistake better in the future.
437
438 Regression since c92d2e14cf, shipped in 7.58.0.
439
440 Reported-by: Somnath Kundu
441
442 Fixes #2312
443 Closes #2313
444
445- Revert "KNOWN_BUGS: 2.5 curl should not offer "ALPN: h2" when using https-proxy"
446
447 This reverts commit de9fac00c40db321d44fa6fbab6eb62ec4c83998.
448
449 Reported-by: Jay Satiro
450
451Jay Satiro (15 Feb 2018)
452- non-ascii: fix implicit declaration warning
453
454 Follow-up to b46cfbc.
455
456 Caught by Travis CI.
457
458Daniel Stenberg (15 Feb 2018)
459- travis: add build with iconv enabled
460
461 ... to verify it builds and works fine.
462
463 Ref: https://curl.haxx.se/mail/lib-2017-09/0031.html
464
465 Closes #1872
466
467- TODO: 18.18 retry on network is unreachable
468
469 Closes #1603
470
471- KNOWN_BUGS: 2.5 curl should not offer "ALPN: h2" when using https-proxy
472
473 Closes #1254
474
475Kamil Dudka (15 Feb 2018)
476- nss: use PK11_CreateManagedGenericObject() if available
477
478 ... so that the memory allocated by applications using libcurl does not
479 grow per each TLS connection.
480
481 Bug: https://bugzilla.redhat.com/1510247
482
483 Closes #2297
484
485Daniel Stenberg (15 Feb 2018)
486- [Björn Stenberg brought this change]
487
488 TODO fixed: Detect when called from within callbacks
489
490 Closes #2302
491
492- BINDINGS: fix curb link (and remove ruby-curl-multi)
493
494 Reported-by: Klaus Stein
495
496- curl_gssapi: make sure this file too uses our *printf()
497
498- libcurl-security.3: separate file:// section
499
500 ... just to make it more apparent. Even if it repeats
501 some pieces of information.
502
503- libcurl-security.3: the http://192.168.0.1/my_router_config case
504
505 Mentioned-By: Rich Moore
506
507- libcurl-security.3: mention the URL standards problems too
508
509- libcurl-security.3: split out from libcurl-tutorial.3
510
511 To make more accessible.
512
513 Merged in some new language from "URLs are dangerous things" as discussed on
514 the mailing list a few days ago:
515
516 Bug: https://curl.haxx.se/mail/lib-2018-02/0013.html
517
518- RELEASE-NOTES: synced with e551910f8
519
520Patrick Monnerat (13 Feb 2018)
521- tests: new tests for http raw mode
522
523 Test 319 checks proper raw mode data with non-chunked gzip
524 transfer-encoded server data.
525 Test 326 checks raw mode with chunked server data.
526
527 Bug: #2303
528 Closes #2308
529
530Kamil Dudka (12 Feb 2018)
531- tlsauthtype.d: works only if libcurl is built with TLS-SRP support
532
533 Bug: https://bugzilla.redhat.com/1542256
534
535 Closes #2306
536
537Patrick Monnerat (12 Feb 2018)
538- smtp: fix processing of initial dot in data
539
540 RFC 5321 4.1.1.4 specifies the CRLF terminating the DATA command
541 should be taken into account when chasing the <CRLF>.<CRLF> end marker.
542 Thus a leading dot character in data is also subject to escaping.
543
544 Tests 911 and test server are adapted to this situation.
545 New tests 951 and 952 check proper handling of initial dot in data.
546
547 Closes #2304
548
549Daniel Stenberg (12 Feb 2018)
550- sha256: avoid redefine
551
552- [Douglas Mencken brought this change]
553
554 sha256: build with OpenSSL < 0.9.8 too
555
556 support for SHA-2 was introduced in OpenSSL 0.9.8
557
558 Closes #2305
559
560- [Bruno Grasselli brought this change]
561
562 README: language fix
563
564 s/off/from
565
566 Closes #2300
567
568Patrick Monnerat (12 Feb 2018)
569- http_chunks: don't write chunks twice with CURLOPT_HTTP_TRANSFER_DECODING on
570
571 Bug: #2303
572 Reported-By: Henry Roeland
573
574Daniel Stenberg (9 Feb 2018)
575- get_posix_time: only check for overflows if they can happen!
576
577Michael Kaufmann (9 Feb 2018)
578- schannel: fix "no previous prototype" compiler warning
579
580Jay Satiro (9 Feb 2018)
581- [Mohammad AlSaleh brought this change]
582
583 content_encoding: Add "none" alias to "identity"
584
585 Some servers return a "content-encoding" header with a non-standard
586 "none" value.
587
588 Add "none" as an alias to "identity" as a work-around, to avoid
589 unrecognised content encoding type errors.
590
591 Signed-off-by: Mohammad AlSaleh <CE.Mohammad.AlSaleh@gmail.com>
592
593 Closes https://github.com/curl/curl/pull/2298
594
595Steve Holme (8 Feb 2018)
596- build-openssl.bat: Follow up to 648679ab8e to suppress copy/move output
597
598- build-openssl.bat: Fixed incorrect move if destination build folder exists
599
600Michael Kaufmann (8 Feb 2018)
601- schannel: fix compiler warnings
602
603 Closes #2296
604
605Steve Holme (7 Feb 2018)
606- curl_addrinfo.c: Allow Unix Domain Sockets to compile under Windows
607
608 Windows 10.0.17061 SDK introduces support for Unix Domain Sockets.
609 Added the necessary include file to curl_addrinfo.c.
610
611 Note: The SDK (which is considered beta) has to be installed, VS 2017
612 project file has to be re-targeted for Windows 10.0.17061 and #define
613 enabled in config-win32.h.
614
615Patrick Monnerat (7 Feb 2018)
616- fnmatch: optimize processing of consecutive *s and ?s pattern characters
617
618 Reported-By: Daniel Stenberg
619 Fixes #2291
620 Closes #2293
621
622Steve Holme (6 Feb 2018)
623- build-openssl.bat/build-wolfssl.bat: Build platform is optional
624
625 Whilst the compiler parameter is mandatory, platform is optional as it
626 is automatically calculated by the :configure section.
627
628 This partially reverts commit 6d62d2c55d.
629
630Daniel Stenberg (6 Feb 2018)
631- [Patrick Schlangen brought this change]
632
633 openssl: Don't add verify locations when verifypeer==0
634
635 When peer verification is disabled, calling
636 SSL_CTX_load_verify_locations is not necessary. Only call it when
637 verification is enabled to save resources and increase performance.
638
639 Closes #2290
640
641Steve Holme (5 Feb 2018)
642- build-wolfssl.bat: Extend VC15 support to include Enterprise and Professional
643
644 ...and not just the Community Edition.
645
646- build-openssl.bat: Extend VC15 support to include Enterprise and Professional
647
648 ...and not just the Community Edition.
649
650Michael Kaufmann (5 Feb 2018)
651- time-cond: fix reading the file modification time on Windows
652
653 On Windows, stat() may adjust the unix file time by a daylight saving time
654 offset. Avoid this by calling GetFileTime() instead.
655
656 Fixes #2164
657 Closes #2204
658
659Daniel Stenberg (5 Feb 2018)
660- formdata: use the mime-content type function
661
662 Reduce code duplication by making Curl_mime_contenttype available and
663 used by the formdata function. This also makes the formdata function
664 recognize a set of more file extensions by default.
665
666 PR #2280 brought this to my attention.
667
668 Closes #2282
669
670- getdate: return -1 for out of range
671
672 ...as that's how the function is documented to work.
673
674 Reported-by: Michael Kaufmann
675 Bug found in an autobuild with 32 bit time_t
676
677 Closes #2278
678
679- [Ben Greear brought this change]
680
681 build: fix termios issue on android cross-compile
682
683 Bug: https://curl.haxx.se/mail/lib-2018-01/0122.html
684 Signed-off-by: Ben Greear <greearb@candelatech.com>
685
686- time_t-fixes: remove typecasts to 'long' for info.filetime
687
688 They're now wrong.
689
690 Reported-by: Michael Kaufmann
691
692 Closes #2277
693
694- curl_setup: move the precautionary define of SIZEOF_TIME_T
695
696 ... up to before it may be used for the TIME_T_MAX/MIN logic.
697
698 Reported-by: Michael Kaufmann
699
700- parsedate: s/#if/#ifdef
701
702 Reported-by: Michael Kaufmann
703 Bug: https://github.com/curl/curl/commit/1c39128d974666107fc6d9ea15f294036851f224#commitcomment-27246479
704
705Patrick Monnerat (31 Jan 2018)
706- fnmatch: pattern syntax can no longer fail
707
708 Whenever an expected pattern syntax rule cannot be matched, the
709 character starting the rule loses its special meaning and the parsing
710 is resumed:
711 - backslash at the end of pattern string matches itself.
712 - Error in [:keyword:] results in set containing :\[dekorwy.
713
714 Unit test 1307 updated for this new situation.
715
716 Closes #2273
717
718- fnmatch: accept an alphanum to be followed by a non-alphanum in char set
719
720 Also be more tolerant about set pattern syntax.
721 Update unit test 1307 accordingly.
722
723 Bug: https://curl.haxx.se/mail/lib-2018-01/0114.html
724
725- fnmatch: do not match the empty string with a character set
726
727Jay Satiro (30 Jan 2018)
728- build: fix windows build methods for curl_ctype.c
729
730 - Fix winbuild and the VS project generator to treat curl_ctype.{c,h} as
731 curlx files since they are required by both src and lib.
732
733 Follow-up to 4272a0b which added curl_ctype.
734
735Daniel Stenberg (30 Jan 2018)
736- progress-bar.d: update to match implementation
737
738 ... since commit 993dd5651a6
739
740 Reported-by: Martin Dreher
741 Bug: https://github.com/curl/curl/pull/2242#issuecomment-361059228
742
743 Closes #2271
744
745- http2: set DEBUG_HTTP2 to enable more HTTP/2 logging
746
747 ... instead of doing it unconditionally in debug builds. It cluttered up
748 the output a little too much.
749
750- [Max Dymond brought this change]
751
752 file: Check the return code from Curl_range and bail out on error
753
754- [Max Dymond brought this change]
755
756 Curl_range: add check to ensure "from <= to"
757
758- [Max Dymond brought this change]
759
760 Curl_range: commonize FTP and FILE range handling
761
762 Closes #2205
763
764- RELEASE-NOTES: synced with 811beab9f
765
766- curlver: next release will be 7.59.0
767
768- [Michał Janiszewski brought this change]
769
770 curl/curl.h: fix comment typo for CURLOPT_DNS_LOCAL_IP6
771
772 Closes #2275
773
774- time: support > year 2038 time stamps for system with 32bit long
775
776 ... with the introduction of CURLOPT_TIMEVALUE_LARGE and
777 CURLINFO_FILETIME_T.
778
779 Fixes #2238
780 Closes #2264
781
782- curl_easy_reset: clear digest auth state
783
784 Bug: https://curl.haxx.se/mail/lib-2018-01/0074.html
785 Reported-by: Ruurd Beerstra
786 Fixes #2255
787 Closes #2272
788
789- [Adam Marcionek brought this change]
790
791 winbuild: make linker generate proper PDB
792
793 Link.exe requires /DEBUG to properly generate a full pdb file on release
794 builds.
795
796 Closes #2274
797
798- curl: add --proxy-pinnedpubkey
799
800 To verify a proxy's public key. For when using HTTPS proxies.
801
802 Fixes #2192
803 Closes #2268
804
805- configure: set PATH_SEPARATOR to colon for PATH w/o separator
806
807 The logic tries to figure out what the path separator in the $PATH
808 variable is, but if there's only one directory in the $PATH it
809 fails. This change make configure *guess* on colon instead of erroring
810 out, simply because that is probably the more common character.
811
812 PATH_SEPARATOR can always be set by the user to override the guessing.
813
814 (tricky bug to reproduce, as in my case for example the configure script
815 requires binaries in more than one directory so passing in a PATH with a
816 single dir fails.)
817
818 Reported-by: Earnestly on github
819 Fixes #2202
820 Closes #2265
821
822- curl_ctype: private is*() type macros and functions
823
824 ... since the libc provided one are locale dependent in a way we don't
825 want. Also, the "native" isalnum() (for example) works differently on
826 different platforms which caused test 1307 failures on macos only.
827
828 Closes #2269
829
830Marcel Raad (29 Jan 2018)
831- build: open VC15 projects with VS 2017
832
833 Previously, they were opened with Visual Studio 2015 by default, which
834 cannot build them.
835
836Daniel Stenberg (29 Jan 2018)
837- RELEASE-NOTES: synced with 094647fca
838
839- TODO: UTF-8 filenames in Content-Disposition
840
841 Closes #1888
842
843- KNOWN_BUGS: DICT responses show the underlying protocol
844
845 Closes #1809
846
847Jay Satiro (27 Jan 2018)
848- [Alessandro Ghedini brought this change]
849
850 docs: fix typos in man pages
851
852 Closes https://github.com/curl/curl/pull/2266
853
854Patrick Monnerat (26 Jan 2018)
855- lib555: drop text conversion and encode data as ascii codes
856
857 If CURL_DOES_CONVERSION is enabled, uploaded LFs are mapped to CRLFs,
858 giving a result that is different from what is expected.
859 This commit avoids using CURLOPT_TRANSFERTEXT and directly encodes data
860 to upload in ascii.
861
862 Bug: https://github.com/curl/curl/pull/1872
863
864Daniel Stenberg (26 Jan 2018)
865- lib517: make variable static to avoid compiler warning
866
867 ... with clang on macos
868
869Patrick Monnerat (26 Jan 2018)
870- lib544: sync ascii code data with textual data
871
872 Data mismatch caused test 545 to fail when character encoding
873 conversion is enabled.
874
875 Bug: https://github.com/curl/curl/pull/1872
876
877Daniel Stenberg (25 Jan 2018)
878- [Travis Burtrum brought this change]
879
880 GSKit: restore pinnedpubkey functionality
881
882 inadvertently removed in 283babfaf8d8f3bab9d3c63cea94eb0b84e79c37
883
884 Closes #2263
885
886- [Dair Grant brought this change]
887
888 darwinssl: Don't import client certificates into Keychain on macOS
889
890 Closes #2085
891
892- configure: fix the check for unsigned time_t
893
894 Assign the time_t variable negative value and then check if it is
895 greater than zero, which will evaluate true for unsigned time_t but
896 false for signed time_t.
897
898- parsedate: fix date parsing for systems with 32 bit long
899
900 Make curl_getdate() handle dates before 1970 as well (returning negative
901 values).
902
903 Make test 517 test dates for 64 bit time_t.
904
905 This fixes bug (3) mentioned in #2238
906
907 Closes #2250
908
909- [McDonough, Tim brought this change]
910
911 openssl: fix pinned public key build error in FIPS mode
912
913 Here is a version that should work with all versions of openssl 0.9.7
914 through 1.1.0.
915
916 Links to the docs:
917 https://www.openssl.org/docs/man1.0.2/crypto/EVP_DigestInit.html
918 https://www.openssl.org/docs/man1.1.0/crypto/EVP_DigestInit.html
919
920 At the very bottom of the 1.1.0 documentation there is a history section
921 that states, " stack allocated EVP_MD_CTXs are no longer supported."
922
923 If EVP_MD_CTX_create and EVP_MD_CTX_destroy are not defined, then a
924 simple mapping can be used as described here:
925 https://wiki.openssl.org/index.php/Talk:OpenSSL_1.1.0_Changes
926
927 Closes #2258
928
929- [Travis Burtrum brought this change]
930
931 SChannel/WinSSL: Replace Curl_none_md5sum with Curl_schannel_md5sum
932
933- [Travis Burtrum brought this change]
934
935 SChannel/WinSSL: Implement public key pinning
936
937 Closes #1429
938
939- bump: towards 7.58.1
940
941- cookies: remove verbose "cookie size:" output
942
943 It was once used for some debugging/verifying logic but should never have
944 ended up in git!
945
946- TODO: hardcode the "localhost" addresses
947
948- TODO: CURL_REFUSE_CLEARTEXT
949
950 An idea that popped up in discussions on twitter.
951
952- progress-bar: don't use stderr explicitly, use bar->out
953
954 Reported-By: Gisle Vanem
955 Bug: https://github.com/curl/curl/commit/993dd5651a6c853bfe3870f6a69c7b329fa4e8ce#commitcomment-27070080
956
957GitHub (24 Jan 2018)
958- [Gisle Vanem brought this change]
959
960 Fixes for MSDOS etc.
961
962 djgpp do have 'mkdir(dir, mode)'. Other DOS-compilers does not
963 But djgpp seems the only choice for MSDOS anyway.
964
965 PellesC do have a 'F_OK' defined in it's <unistd.h>.
966
967 Update year in Copyright.
968
969- [Gisle Vanem brought this change]
970
971 Fix small typo.
972
Elliott Hughes0128fe42018-02-27 14:57:55 -0800973Version 7.58.0 (23 Jan 2018)
974
975Daniel Stenberg (23 Jan 2018)
976- RELEASE: 7.58.0
977
978- [Gisle Vanem brought this change]
979
980 progress-bar: get screen width on windows
981
982- test1454: --connect-to with IPv6 address w/o IPv6 support!
983
984- CONNECT_TO: fail attempt to set an IPv6 numerical without IPv6 support
985
986 Bug: https://curl.haxx.se/mail/lib-2018-01/0087.html
987 Reported-by: John Hascall
988
989 Closes #2257
990
991- docs: fix man page syntax to make test 1140 OK again
992
993- http: prevent custom Authorization headers in redirects
994
995 ... unless CURLOPT_UNRESTRICTED_AUTH is set to allow them. This matches how
996 curl already handles Authorization headers created internally.
997
998 Note: this changes behavior slightly, for the sake of reducing mistakes.
999
1000 Added test 317 and 318 to verify.
1001
1002 Reported-by: Craig de Stigter
1003 Bug: https://curl.haxx.se/docs/adv_2018-b3bf.html
1004
1005- curl: progress bar refresh, get width using ioctl()
1006
1007 Get screen width from the environment variable COLUMNS first, if set. If
1008 not, use ioctl(). If nether works, assume 79.
1009
1010 Closes #2242
1011
1012 The "refresh" is for the -# output when no total transfer size is
1013 known. It will now only use a single updated line even for this case:
1014
1015 The "-=O=-" ship moves when data is transferred. The four flying
1016 "hashes" move (on a sine wave) on each refresh, independent of data.
1017
1018- RELEASE-NOTES: synced with bb0ffcc36
1019
1020- libcurl-env.3: first take
1021
1022- TODO: two possible name resolver improvements
1023
1024- [Kartik Mahajan brought this change]
1025
1026 http2: don't close connection when single transfer is stopped
1027
1028 Fixes #2237
1029 Closes #2249
1030
1031- test558: fix for multissl builds
1032
1033 vtls.c:multissl_init() might do a curl_free() call so strip that out to
1034 make this work with more builds. We just want to verify that
1035 memorytracking works so skipping one line is no harm.
1036
1037- examples/url2file.c: add missing curl_global_cleanup() call
1038
1039 Reported-by: XhstormR on github
1040 Fixes #2245
1041
1042- [Michael Gmelin brought this change]
1043
1044 SSH: Fix state machine for ssh-agent authentication
1045
1046 In case an identity didn't match[0], the state machine would fail in
1047 state SSH_AUTH_AGENT instead of progressing to the next identity in
1048 ssh-agent. As a result, ssh-agent authentication only worked if the
1049 identity required happened to be the first added to ssh-agent.
1050
1051 This was introduced as part of commit c4eb10e2f06fbd6cc904f1d78e4, which
1052 stated that the "else" statement was required to prevent getting stuck
1053 in state SSH_AUTH_AGENT. Given the state machine's logic and libssh2's
1054 interface I couldn't see how this could happen or reproduce it and I
1055 also couldn't find a more detailed description of the problem which
1056 would explain a test case to reproduce the problem this was supposed to
1057 fix.
1058
1059 [0] libssh2_agent_userauth returning LIBSSH2_ERROR_AUTHENTICATION_FAILED
1060
1061 Closes #2248
1062
1063- openssl: fix potential memory leak in SSLKEYLOGFILE logic
1064
1065 Coverity CID 1427646.
1066
1067- openssl: fix the libressl build again
1068
1069 Follow-up to 84fcaa2e7. libressl does not have the API even if it says it is
1070 late OpenSSL version...
1071
1072 Fixes #2246
1073 Closes #2247
1074
1075 Reported-by: jungle-boogie on github
1076
1077- unit1307: test many wildcards too
1078
1079- curl_fnmatch: only allow 5 '*' sections in a single pattern
1080
1081 ... to avoid excessive recursive calls. The number 5 is totally
1082 arbitrary and could be modified if someone has a good motivation.
1083
1084- ftp-wildcard: fix matching an empty string with "*[^a]"
1085
1086 .... and avoid advancing the pointer to trigger an out of buffer read.
1087
1088 Detected by OSS-fuzz
1089 Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5251
1090 Assisted-by: Max Dymond
1091
1092- SMB: fix numeric constant suffix and variable types
1093
1094 1. don't use "ULL" suffix since unsupported in older MSVC
1095 2. use curl_off_t instead of custom long long ifdefs
1096 3. make get_posix_time() not do unaligned data access
1097
1098 Fixes #2211
1099 Closes #2240
1100 Reported-by: Chester Liu
1101
1102- [rouzier brought this change]
1103
1104 CURLOPT_TCP_NODELAY.3: fix typo
1105
1106 Closes #2239
1107
1108- smtp/pop3/imap_get_message: decrease the data length too...
1109
1110 Follow-up commit to 615edc1f73 which was incomplete.
1111
1112 Assisted-by: Max Dymond
1113 Detected by OSS-fuzz
1114 Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5206
1115
1116- openssl: enable SSLKEYLOGFILE support by default
1117
1118 Fixes #2210
1119 Closes #2236
1120
1121Patrick Monnerat (14 Jan 2018)
1122- mime: clone mime tree upon easy handle duplication.
1123
1124 A mime tree attached to an easy handle using CURLOPT_MIMEPOST is
1125 strongly bound to the handle: there is a pointer to the easy handle in
1126 each item of the mime tree and following the parent pointer list
1127 of mime items ends in a dummy part stored within the handle.
1128
1129 Because of this binding, a mime tree cannot be shared between different
1130 easy handles, thus it needs to be cloned upon easy handle duplication.
1131
1132 There is no way for the caller to get the duplicated mime tree
1133 handle: it is then set to be automatically destroyed upon freeing the
1134 new easy handle.
1135
1136 New test 654 checks proper mime structure duplication/release.
1137
1138 Add a warning note in curl_mime_data_cb() documentation about sharing
1139 user data between duplicated handles.
1140
1141 Closes #2235
1142
1143- docs: comment about CURLE_READ_ERROR returned by curl_mime_filedata
1144
1145Daniel Stenberg (13 Jan 2018)
1146- test395: HTTP with overflow Content-Length value
1147
1148- test394: verify abort of rubbish in Content-Length: value
1149
1150- test393: verify --max-filesize with excessive Content-Length
1151
1152- HTTP: bail out on negative Content-Length: values
1153
1154 ... and make the max filesize check trigger if the value is too big.
1155
1156 Updates test 178.
1157
1158 Reported-by: Brad Spencer
1159 Fixes #2212
1160 Closes #2223
1161
1162Marcel Raad (13 Jan 2018)
1163- [Dan Johnson brought this change]
1164
1165 configure.ac: append extra linker flags instead of prepending them.
1166
1167 Link order should list libraries after the libraries that use them,
1168 so when we're guessing that we might also need to add -ldl in order
1169 to use -lssl, we should add -ldl after -lssl.
1170
1171 Closes https://github.com/curl/curl/pull/2234
1172
1173Daniel Stenberg (13 Jan 2018)
1174- RELEASE-NOTES: synced with 6fa10c8fa
1175
1176Jay Satiro (13 Jan 2018)
1177- setopt: fix SSLVERSION to allow CURL_SSLVERSION_MAX_ values
1178
1179 Broken since f121575 (precedes 7.56.1).
1180
1181 Bug: https://github.com/curl/curl/issues/2225
1182 Reported-by: cmfrolick@users.noreply.github.com
1183
1184 Closes https://github.com/curl/curl/pull/2227
1185
1186Patrick Monnerat (13 Jan 2018)
1187- setopt: reintroduce non-static Curl_vsetopt() for OS400 support
1188
1189 This also upgrades ILE/RPG bindings with latest setopt options.
1190
1191 Reported-By: jonrumsey on github
1192 Fixes #2230
1193 Closes #2233
1194
1195Jay Satiro (11 Jan 2018)
1196- [Zhouyihai Ding brought this change]
1197
1198 http2: fix incorrect trailer buffer size
1199
1200 Prior to this change the stored byte count of each trailer was
1201 miscalculated and 1 less than required. It appears any trailer
1202 after the first that was passed to Curl_client_write would be truncated
1203 or corrupted as well as the size. Potentially the size of some
1204 subsequent trailer could be erroneously extracted from the contents of
1205 that trailer, and since that size is used by client write an
1206 out-of-bounds read could occur and cause a crash or be otherwise
1207 processed by client write.
1208
1209 The bug appears to have been born in 0761a51 (precedes 7.49.0).
1210
1211 Closes https://github.com/curl/curl/pull/2231
1212
1213- [Basuke Suzuki brought this change]
1214
1215 easy: fix connection ownership in curl_easy_pause
1216
1217 Before calling Curl_client_chop_write(), change the owner of connection
1218 to the current Curl_easy handle. This will fix the issue #2217.
1219
1220 Fixes https://github.com/curl/curl/issues/2217
1221 Closes https://github.com/curl/curl/pull/2221
1222
1223Daniel Stenberg (9 Jan 2018)
1224- [Dimitrios Apostolou brought this change]
1225
1226 system.h: Additionally check __LONG_MAX__ for defining curl_off_t
1227
1228 __SIZEOF_LONG__ was introduced in GCC 4.4, __LONG_MAX__ was introduced
1229 in GCC 3.3.
1230
1231 Closes #2216
1232
1233- COPYING: it's 2018!
1234
1235- progress: calculate transfer speed on milliseconds if possible
1236
1237 to increase accuracy for quick transfers
1238
1239 Fixes #2200
1240 Closes #2206
1241
1242Jay Satiro (7 Jan 2018)
1243- scripts: allow all perl scripts to be run directly
1244
1245 - Enable execute permission (chmod +x)
1246
1247 - Change interpreter to /usr/bin/env perl
1248
1249 Closes https://github.com/curl/curl/pull/2222
1250
1251- mail-rcpt.d: fix short-text description
1252
1253- build: remove HAVE_LIMITS_H check
1254
1255 .. because limits.h presence isn't optional, it's required by C89.
1256
1257 Ref: http://port70.net/~nsz/c/c89/c89-draft.html#2.2.4.2
1258
1259 Closes https://github.com/curl/curl/pull/2215
1260
1261- openssl: fix memory leak of SSLKEYLOGFILE filename
1262
1263 - Free the copy of SSLKEYLOGFILE env returned by curl_getenv during ossl
1264 initialization.
1265
1266 Caught by ASAN.
1267
1268- Revert "curl/system.h: fix compilation with gcc on AIX PPC and IA64 HP-UX"
1269
1270 This reverts commit c97648b55080343bb371522bf4233e94a2a13a99.
1271
1272 SIZEOF_LONG should not be checked in system.h since that macro is only
1273 defined when building libcurl.
1274
1275 Ref: https://github.com/curl/curl/pull/2186#issuecomment-354767080
1276 Ref: https://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html
1277
1278Michael Kaufmann (30 Dec 2017)
1279- test1554: improve the error handling
1280
1281- test1554: add global initialization and cleanup
1282
1283Daniel Stenberg (29 Dec 2017)
1284- curl_version_info.3: call the argument 'age'
1285
1286 Reported-by: Pete Lomax
1287 Bug: https://curl.haxx.se/mail/lib-2017-12/0074.html
1288
1289Patrick Monnerat (27 Dec 2017)
1290- [Mikalai Ananenka brought this change]
1291
1292 brotli: data at the end of content can be lost
1293
1294 Decoding loop implementation did not concern the case when all
1295 received data is consumed by Brotli decoder and the size of decoded
1296 data internally hold by Brotli decoder is greater than CURL_MAX_WRITE_SIZE.
1297 For content with unencoded length greater than CURL_MAX_WRITE_SIZE this
1298 can result in the loss of data at the end of content.
1299
1300 Closes #2194
1301
1302Jay Satiro (26 Dec 2017)
1303- examples/cacertinmem: ignore cert-already-exists error
1304
1305 - Ignore X509_R_CERT_ALREADY_IN_HASH_TABLE errors in the CTX callback
1306 since it's possible the cert may have already been loaded by libcurl.
1307
1308 - Remove the EXAMPLE code in the CURLOPT_SSL_CTX_FUNCTION.3 doc.
1309 Instead have it direct the reader to this cacertinmem.c example.
1310
1311 - Fix the CA certificate to use the right CA for example.com, Digicert.
1312
1313 Bug: https://curl.haxx.se/mail/lib-2017-12/0057.html
1314 Reported-by: Thomas van Hesteren
1315
1316 Closes https://github.com/curl/curl/pull/2182
1317
1318- [Gisle Vanem brought this change]
1319
1320 tool_getparam: Support size modifiers for --max-filesize
1321
1322 - Move the size modifier detection code from limit-rate to its own
1323 function so that it can also be used with max-filesize.
1324
1325 Size modifiers are the suffixes such as G (gigabyte), M (megabyte) etc.
1326
1327 For example --max-filesize 1G
1328
1329 Ref: https://curl.haxx.se/mail/archive-2017-12/0000.html
1330
1331 Closes https://github.com/curl/curl/pull/2179
1332
1333Steve Holme (22 Dec 2017)
1334- build: Fixed incorrect script termination from commit ad1dc10e61
1335
1336- Makefile.vc: Added our standard copyright header
1337
1338- winbuild: Added support for VC15
1339
1340- build: Added Visual Studio 2017 project files
1341
1342- build-wolfssl.bat: Added support for VC15
1343
1344- build-openssl.bat: Added support for VC15
1345
1346Jay Satiro (22 Dec 2017)
1347- [Dimitrios Apostolou brought this change]
1348
1349 curl/system.h: fix compilation with gcc on AIX PPC and IA64 HP-UX
1350
1351 Closes https://github.com/curl/curl/pull/2186
1352
1353- [Mattias Fornander brought this change]
1354
1355 examples/rtsp: fix error handling macros
1356
1357 Closes https://github.com/curl/curl/pull/2185
1358
1359Patrick Monnerat (20 Dec 2017)
1360- curl_easy_reset: release mime-related data.
1361
1362 Move curl_mime_initpart() and curl_mime_cleanpart() calls to lower-level
1363 functions dealing with UserDefined structure contents.
1364 This avoids memory leakages on curl-generated part mime headers.
1365 New test 2073 checks this using the cli tool --next option: it
1366 triggers a valgrind error if bug is present.
1367
1368 Bug: https://curl.haxx.se/mail/lib-2017-12/0060.html
1369 Reported-by: Martin Galvan
1370
1371- content_encoding: rework zlib_inflate
1372
1373 - When zlib version is < 1.2.0.4, process gzip trailer before considering
1374 extra data as an error.
1375 - Inflate with Z_BLOCK instead of Z_SYNC_FLUSH to maximize correct data
1376 and minimize corrupt data output.
1377 - Do not try to restart deflate decompression in raw mode if output has
1378 started or if the leading data is not available anymore.
1379 - New test 232 checks inflating raw-deflated content.
1380
1381 Closes #2068
1382
1383- brotli: allow compiling with version 0.6.0.
1384
1385 Some error codes were not yet defined in brotli 0.6.0: do not issue code
1386 for them in this case.
1387
1388Daniel Stenberg (13 Dec 2017)
1389- CURLOPT_READFUNCTION.3: refer to argument with correct name
1390
1391 Bug: #2175
1392
1393 [ci skip]
1394
1395- rand: add a clang-analyzer work-around
1396
1397 scan-build would warn on a potential access of an uninitialized
1398 buffer. I deem it a false positive and had to add this somewhat ugly
1399 work-around to silence it.
1400
1401- krb5: fix a potential access of uninitialized memory
1402
1403 A scan-build warning.
1404
1405- conncache: fix a return code [regression]
1406
1407 This broke in 07cb27c98e. Make sure to return 'result' properly. Pointed
1408 out by scan-build!
1409
1410- curl: support >256 bytes warning messsages
1411
1412 Bug: #2174
1413
1414Michael Kaufmann (12 Dec 2017)
1415- libssh: fix a syntax error in configure.ac
1416
1417 Follow-up to c92d2e1
1418
1419 Closes #2172
1420
1421Daniel Stenberg (12 Dec 2017)
1422- examples/smtp-mail.c: use separate defines for options and mail
1423
1424 ... to make it clearer that the options want address-only, while the
1425 headers in an email can also have the real name.
1426
1427 Assisted-by: Sean MacLennan
1428
1429- THANKS: added missing names
1430
1431 ... as I reran the contrithanks script after the mailmap name fixups.
1432
1433- mailmap: added/clarified several names
1434
1435- setopt: less *or equal* than INT_MAX/1000 should be fine
1436
1437 ... for the CURLOPT_TIMEOUT, CURLOPT_CONNECTTIMEOUT and
1438 CURLOPT_SERVER_RESPONSE_TIMEOUT range checks.
1439
1440 Reported-by: Dominik Hölzl
1441 Bug: https://curl.haxx.se/mail/lib-2017-12/0037.html
1442
1443 Closes #2173
1444
1445- [Dmitry Kostjuchenko brought this change]
1446
1447 vtls: replaced getenv() with curl_getenv()
1448
1449 Fixed undefined symbol of getenv() which does not exist when compiling
1450 for Windows 10 App (CURL_WINDOWS_APP). Replaced getenv() with
1451 curl_getenv() which is aware of getenv() absence when CURL_WINDOWS_APP
1452 is defined.
1453
1454 Closes #2171
1455
1456- RELEASE-NOTES: synced with 3b9ea70ee
1457
1458- TODO: Expose tried IP addresses that failed
1459
1460 Suggested-by: Rainer Canavan
1461
1462 Closes #2126
1463
1464- curl.1: mention http:// and https:// as valid proxy prefixes
1465
1466- curl.1: documented two missing valid exit codes
1467
1468- CURLOPT_DNS_LOCAL_IP4.3: fixed the seel also to not self-reference
1469
1470- Revert "curl: don't set CURLOPT_INTERLEAVEDATA"
1471
1472 This reverts commit 9ffad8eb1329bb35c8988115ac7ed85cf91ef955.
1473
1474 It was actually added rather recently in 8e8afa82cbb629 due to a crash
1475 that would otherwise happen in the RTSP code. As I don't think we've
1476 fixed that behavior yet, we better keep this work-around until we have
1477 fixed it better.
1478
1479Michael Kaufmann (10 Dec 2017)
1480- tests: mark data files as non-executable in git
1481
1482- tests: update .gitignore for libtests
1483
1484Daniel Stenberg (10 Dec 2017)
1485- multi_done: prune DNS cache
1486
1487 Prune the DNS cache immediately after the dns entry is unlocked in
1488 multi_done. Timed out entries will then get discarded in a more orderly
1489 fashion.
1490
1491 Test506 is updated
1492
1493 Reported-by: Oleg Pudeyev
1494
1495 Fixes #2169
1496 Closes #2170
1497
1498- mailmap: fixup two old git Author "aliases"
1499
1500Jay Satiro (10 Dec 2017)
1501- openssl: Disable file buffering for Win32 SSLKEYLOGFILE
1502
1503 Prior to this change SSLKEYLOGFILE used line buffering on WIN32 just
1504 like it does for other platforms. However, the Windows CRT does not
1505 actually support line buffering (_IOLBF) and will use full buffering
1506 (_IOFBF) instead. We can't use full buffering because multiple processes
1507 may be writing to the file and that could lead to corruption, and since
1508 full buffering is the only buffering available this commit disables
1509 buffering for Windows SSLKEYLOGFILE entirely (_IONBF).
1510
1511 Ref: https://github.com/curl/curl/pull/1346#issuecomment-350530901
1512
1513Daniel Stenberg (10 Dec 2017)
1514- RESOLVE: output verbose text when trying to set a duplicate name
1515
1516 ... to help users understand what is or isn't done!
1517
1518- CURLOPT_DNS_CACHE_TIMEOUT.3: see also CURLOPT_RESOLVE
1519
1520- [John DeHelian brought this change]
1521
1522 sftp: allow quoted commands to use relative paths
1523
1524 Closes #1900
1525
1526Jay Satiro (8 Dec 2017)
1527- [Richard Alcock brought this change]
1528
1529 CURLOPT_PRIVATE.3: fix grammar
1530
1531 - Change "never does nothing" double-negative to "never does anything".
1532
1533 Closes https://github.com/curl/curl/pull/2168
1534
1535Daniel Stenberg (8 Dec 2017)
1536- curl: remove __EMX__ #ifdefs
1537
1538 These are OS/2-specific things added to the code in the year 2000. They
1539 were always ugly. If there's any user left, they still don't need it
1540 done this way.
1541
1542 Closes #2166
1543
1544Jay Satiro (8 Dec 2017)
1545- openssl: improve data-pending check for https proxy
1546
1547 - Allow proxy_ssl to be checked for pending data even when connssl does
1548 not yet have an SSL handle.
1549
1550 This change is for posterity. Currently there doesn't seem to be a code
1551 path that will cause a pending data check when proxyssl could have
1552 pending data and the connssl handle doesn't yet exist [1].
1553
1554 [1]: Recall that an https proxy connection starts out in connssl but if
1555 the destination is also https then the proxy SSL backend data is moved
1556 from connssl to proxyssl, which means connssl handle is temporarily
1557 empty until an SSL handle for the destination can be created.
1558
1559 Ref: https://github.com/curl/curl/commit/f4a6238#commitcomment-24396542
1560
1561 Closes https://github.com/curl/curl/pull/1916
1562
1563Daniel Stenberg (8 Dec 2017)
1564- curl: don't set CURLOPT_INTERLEAVEDATA
1565
1566 That data is only ever used by the CURLOPT_INTERLEAVEFUNCTION callback
1567 and that option isn't set or used by the curl tool!
1568
1569 Updates the 9 tests that verify --libcurl
1570
1571 Closes #2167
1572
1573- curl.h: remove incorrect comment about ERRORBUFFER
1574
1575 ... error messages are _not_ sent to stderr if this is not set.
1576
1577- [Michael Felt brought this change]
1578
1579 configure: add AX_CODE_COVERAGE only if using gcc
1580
1581 Fixes #2076
1582 Closes #2125
1583
1584- curl: limit -# update frequency for unknown total size
1585
1586 Make it use a max 10Hz update frequency for this case as well. Return
1587 early if the "point" hasn't moved since last invoke.
1588
1589 Reported-by: Elliot Saba
1590
1591 Fixes #2158
1592 Closes #2163
1593
1594- BINDINGS: another PostgreSQL client
1595
1596 ...the former link is dead.
1597
1598 Reported-by: Frank Gevaerts
1599
1600- [Zachary Seguin brought this change]
1601
1602 CONNECT: keep close connection flag in http_connect_state struct
1603
1604 Fixes #2088
1605 Closes #2157
1606
1607- [Per Malmberg brought this change]
1608
1609 include: get netinet/in.h before linux/tcp.h
1610
1611 ... to allow build on older Linux dists (specifically CentOS 4.8 on gcc
1612 4.8.5)
1613
1614 Closes #2160
1615
1616- openldap: fix checksrc nits
1617
1618- [Stepan Broz brought this change]
1619
1620 openldap: add commented out debug possibilities
1621
1622 ... to aid debugging openldap library using its built-in debug messages.
1623
1624 Closes #2159
1625
1626- examples: move threaded-shared-conn.c to the "complicated" ones
1627
1628 ... due it relying on pthreads to link.
1629
1630- RELEASE-NOTES: synced with b261c44e8
1631
1632 ... and bump next release version to 7.58.0
1633
1634- [Jan Ehrhardt brought this change]
1635
1636 URL: tolerate backslash after drive letter for FILE:
1637
1638 ... as in "file://c:\some\path\curl.out"
1639
1640 Reviewed-by: Matthew Kerwin
1641 Closes #2154
1642
1643- [Randall S. Becker brought this change]
1644
1645 tests: added netinet/in6.h includes in test servers
1646
1647- [Randall S. Becker brought this change]
1648
1649 configure: check for netinet/in6.h
1650
1651 Needed by HPE NonStop NSE and NSX systems
1652
1653 Fixes #2146
1654 Closes #2155
1655
1656- curl-config: add --ssl-backends
1657
1658 Lists all SSL backends that were enabled at build-time.
1659
1660 Suggested-by: Oleg Pudeyev
1661 Fixes #2128
1662
1663- conncache: only allow multiplexing within same multi handle
1664
1665 Connections that are used for HTTP/1.1 Pipelining or HTTP/2 multiplexing
1666 only get additional transfers added to them if the existing connection
1667 is held by the same multi or easy handle. libcurl does not support doing
1668 HTTP/2 streams in different threads using a shared connection.
1669
1670 Closes #2152
1671
1672- threaded-shared-conn.c: fixed typo in commenta
1673
1674- threaded-shared-conn.c: new example
1675
1676- conncache: fix several lock issues
1677
1678 If the lock is released before the dealings with the bundle is over, it may
1679 have changed by another thread in the mean time.
1680
1681 Fixes #2132
1682 Fixes #2151
1683 Closes #2139
1684
1685- libssh: remove dead code in sftp_qoute
1686
1687 ... by removing a superfluous NULL pointer check that also confuses
1688 Coverity.
1689
1690 Fixes #2143
1691 Closes #2153
1692
1693- sasl_getmesssage: make sure we have a long enough string to pass
1694
1695 For pop3/imap/smtp, added test 891 to somewhat verify the pop3
1696 case.
1697
1698 For this, I enhanced the pingpong test server to be able to send back
1699 responses with LF-only instead of always using CRLF.
1700
1701 Closes #2150
1702
1703- libssh2: remove dead code from SSH_SFTP_QUOTE
1704
1705 Figured out while reviewing code in the libssh backend. The pointer was
1706 checked for NULL after having been dereferenced, so we know it would
1707 always equal true or it would've crashed.
1708
1709 Pointed-out-by: Nikos Mavrogiannopoulos
1710
1711 Bug #2143
1712 Closes #2148
1713
1714- ssh-libssh.c: please checksrc
1715
1716Nikos Mavrogiannopoulos (4 Dec 2017)
1717- libssh: fixed dereference in statvfs access
1718
1719 The behavior is now equivalent to ssh.c when SSH_SFTP_QUOTE_STATVFS
1720 handling fails.
1721
1722 Fixes #2142
1723
1724Daniel Stenberg (4 Dec 2017)
1725- [Guitared brought this change]
1726
1727 RESOURCES: update spec names
1728
1729 Closes #2145
1730
1731Nikos Mavrogiannopoulos (3 Dec 2017)
1732- libssh: corrected use of sftp_statvfs() in SSH_SFTP_QUOTE_STATVFS
1733
1734 The previous code was incorrectly following the libssh2 error detection
1735 for libssh2_sftp_statvfs, which is not correct for libssh's sftp_statvfs.
1736
1737 Fixes #2142
1738
1739 Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
1740
1741- libssh: no need to call sftp_get_error as ssh_get_error is sufficient
1742
1743 Fixes #2141
1744
1745 Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
1746
1747Daniel Stenberg (2 Dec 2017)
1748- libssh: fix minor static code analyzer nits
1749
1750 - remove superfluous NULL check which otherwise tricks the static code
1751 analyzers to assume NULL pointer dereferences.
1752
1753 - fix fallthrough in switch()
1754
1755 - indent mistake
1756
1757- openssl: pkcs12 is supported by boringssl
1758
1759 Removes another #ifdef for BoringSSL
1760
1761 Pointed-out-by: David Benjamin
1762
1763 Closes #2134
1764
1765- [Jay Satiro brought this change]
1766
1767 travis: use pip2 instead of pip
1768
1769 .. since now mac osx image expects pip2 or pip3, and doesn't know pip:
1770
1771 0.01s$ pip install --user cpp-coveralls
1772 /Users/travis/.travis/job_stages: line 57: pip: command not found
1773
1774 Ref: https://github.com/travis-ci/travis-ci/issues/8829
1775
1776 Closes https://github.com/curl/curl/pull/2133
1777
1778- [Nikos Mavrogiannopoulos brought this change]
1779
1780 lib582: do not verify host for SFTP
1781
1782 This SFTP test fails with libssh back-end due to failure to verify
1783 the peer. Disable peer verification in the test as there seems to
1784 be the intention of the test.
1785
1786 Note that the libssh back-end automatically verifies the peer's
1787 host using the default known_hosts file.
1788
1789 Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
1790
1791- [Nikos Mavrogiannopoulos brought this change]
1792
1793 libssh: added SFTP support
1794
1795 The SFTP back-end supports asynchronous reading only, limited
1796 to 32-bit file length. Writing is synchronous with no other
1797 limitations.
1798
1799 This also brings keyboard-interactive authentication.
1800
1801 Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
1802
1803- [Nikos Mavrogiannopoulos brought this change]
1804
1805 symbols-in-versions: added new symbols with 7.56.3 version
1806
1807 Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
1808
1809- [Nikos Mavrogiannopoulos brought this change]
1810
1811 .travis.yml: added build --with-libssh
1812
1813 Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
1814
1815- [Nikos Mavrogiannopoulos brought this change]
1816
1817 libssh2: return CURLE_UPLOAD_FAILED on failure to upload
1818
1819 This brings its in sync with the error code returned by the
1820 libssh backend.
1821
1822 Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
1823
1824- [Nikos Mavrogiannopoulos brought this change]
1825
1826 libssh2: send the correct CURLE error code on scp file not found
1827
1828 That also updates tests to expect the right error code
1829
1830 libssh2 back-end returns CURLE_SSH error if the remote file
1831 is not found. Expect instead CURLE_REMOTE_FILE_NOT_FOUND
1832 which is sent by the libssh backend.
1833
1834 Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
1835
1836- [Nikos Mavrogiannopoulos brought this change]
1837
1838 Added support for libssh SSH SCP back-end
1839
1840 libssh is an alternative library to libssh2.
1841 https://www.libssh.org/
1842
1843 That patch set also introduces support for ECDSA
1844 ed25519 keys, as well as gssapi authentication.
1845
1846 Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
1847
1848- RELEASE-NOTES: synced with af8cc7a69
1849
1850- curlver: towards 7.57.1
1851
1852- [W. Mark Kubacki brought this change]
1853
1854 lib: don't export all symbols, just everything curl_*
1855
1856 Absent any 'symbol map' or script to limit what gets exported, static
1857 linking of libraries previously resulted in a libcurl with curl's and
1858 those other symbols being (re-)exported.
1859
1860 This did not happen if 'versioned symbols' were enabled (which is not
1861 the default) because then a version script is employed.
1862
1863 This limits exports to everything starting in 'curl_*'., which is
1864 what "libcurl.vers" exports.
1865
1866 This avoids strange side-effects such as with mixing methods
1867 from system libraries and those erroneously offered by libcurl.
1868
1869 Closes #2127
1870
1871- [Johannes Schindelin brought this change]
1872
1873 SSL: Avoid magic allocation of SSL backend specific data
1874
1875 Originally, my idea was to allocate the two structures (or more
1876 precisely, the connectdata structure and the four SSL backend-specific
1877 strucutres required for ssl[0..1] and proxy_ssl[0..1]) in one go, so
1878 that they all could be free()d together.
1879
1880 However, getting the alignment right is tricky. Too tricky.
1881
1882 So let's just bite the bullet and allocate the SSL backend-specific
1883 data separately.
1884
1885 As a consequence, we now have to be very careful to release the memory
1886 allocated for the SSL backend-specific data whenever we release any
1887 connectdata.
1888
1889 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
1890
1891 Closes #2119
1892
1893- examples/xmlstream.c: don't switch off CURL_GLOBAL_SSL
1894
1895 Reported-by: Dima Tisnek
1896
1897- travis: add boringssl build
1898
1899 Uses a separate build without --enable-debug and no valgrind.
1900
1901 The debug option causes far too many warnings in boringssl's headers
1902 (C++ comments, trailing commas etc). Valgrind triggers some false
1903 positive errors in thread-local data used by boringssl.
1904
1905 Closes #2118
1906
Alex Deymo486467e2017-12-19 19:04:07 +01001907Version 7.57.0 (29 Nov 2017)
1908
1909Daniel Stenberg (29 Nov 2017)
1910- RELEASE-NOTES: curl 7.57.0
1911
1912- THANKS: added contributors from 7.57.0 release
1913
1914- openssl: fix boringssl build again
1915
1916 commit d3ab7c5a21e broke the boringssl build since it doesn't have
1917 RSA_flags(), so we disable that code block for boringssl builds.
1918
1919 Reported-by: W. Mark Kubacki
1920 Fixes #2117
1921
1922- curl_ntlm_core.c: use the limits.h's SIZE_T_MAX if provided
1923
1924- libcurl-share.3: the connection cache is shareable now
1925
1926- global_init: ignore CURL_GLOBAL_SSL's absense
1927
1928 This bit is no longer used. It is not clear what it meant for users to
1929 "init the TLS" in a world with different TLS backends and since the
1930 introduction of multissl, libcurl didn't properly work if inited without
1931 this bit set.
1932
1933 Not a single user responded to the call for users of it:
1934 https://curl.haxx.se/mail/lib-2017-11/0072.html
1935
1936 Reported-by: Evgeny Grin
1937 Assisted-by: Jay Satiro
1938
1939 Fixes #2089
1940 Fixes #2083
1941 Closes #2107
1942
1943- ntlm: avoid integer overflow for malloc size
1944
1945 Reported-by: Alex Nichols
1946 Assisted-by: Kamil Dudka and Max Dymond
1947
1948 CVE-2017-8816
1949
1950 Bug: https://curl.haxx.se/docs/adv_2017-11e7.html
1951
1952- wildcardmatch: fix heap buffer overflow in setcharset
1953
1954 The code would previous read beyond the end of the pattern string if the
1955 match pattern ends with an open bracket when the default pattern
1956 matching function is used.
1957
1958 Detected by OSS-Fuzz:
1959 https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4161
1960
1961 CVE-2017-8817
1962
1963 Bug: https://curl.haxx.se/docs/adv_2017-ae72.html
1964
1965- [Jay Satiro brought this change]
1966
1967 url: fix alignment of ssl_backend_data struct
1968
1969 - Align the array of ssl_backend_data on a max 32 byte boundary.
1970
1971 8 is likely to be ok but I went with 32 for posterity should one of
1972 the ssl_backend_data structs change to contain a larger sized variable
1973 in the future.
1974
1975 Prior to this change (since dev 70f1db3, release 7.56) the connectdata
1976 structure was undersized by 4 bytes in 32-bit builds with ssl enabled
1977 because long long * was mistakenly used for alignment instead of
1978 long long, with the intention being an 8 byte boundary. Also long long
1979 may not be an available type.
1980
1981 The undersized connectdata could lead to oob read/write past the end in
1982 what was expected to be the last 4 bytes of the connection's secondary
1983 socket https proxy ssl_backend_data struct (the secondary socket in a
1984 connection is used by ftp, others?).
1985
1986 Closes https://github.com/curl/curl/issues/2093
1987
1988 CVE-2017-8818
1989
1990 Bug: https://curl.haxx.se/docs/adv_2017-af0a.html
1991
1992- ssh: remove check for a NULL pointer (!)
1993
1994 With this check present, scan-build warns that we might dereference this
1995 point in other places where it isn't first checked for NULL. Thus, if it
1996 *can* be NULL we have a problem on a few places. However, this pointer
1997 should not be possible to be NULL here so I remove the check and thus
1998 also three different scan-build warnings.
1999
2000 Closes #2111
2001
2002- [Matthew Kerwin brought this change]
2003
2004 test: add test for bad UNC/SMB path in file: URL
2005
2006- [Matthew Kerwin brought this change]
2007
2008 test: add tests to ensure basic file: URLs
2009
2010- [Matthew Kerwin brought this change]
2011
2012 URL: update "file:" URL handling
2013
2014 * LOTS of comment updates
2015 * explicit error for SMB shares (e.g. "file:////share/path/file")
2016 * more strict handling of authority (i.e. "//localhost/")
2017 * now accepts dodgy old "C:|" drive letters
2018 * more precise handling of drive letters in and out of Windows
2019 (especially recognising both "file:c:/" and "file:/c:/")
2020
2021 Closes #2110
2022
2023- metalink: fix memory-leak and NULL pointer dereference
2024
2025 Reported by scan-build
2026
2027 Closes #2109
2028
2029- [Alessandro Ghedini brought this change]
2030
2031 connect: add support for new TCP Fast Open API on Linux
2032
2033 The new API added in Linux 4.11 only requires setting a socket option
2034 before connecting, without the whole sento() machinery.
2035
2036 Notably, this makes it possible to use TFO with SSL connections on Linux
2037 as well, without the need to mess around with OpenSSL (or whatever other
2038 SSL library) internals.
2039
2040 Closes #2056
2041
2042- make: fix "make distclean"
2043
2044 Fixes #2097
2045 Closes #2108
2046
2047- RELEASE-NOTES: synced with 31f18d272
2048
2049Jay Satiro (23 Nov 2017)
2050- connect: improve the bind error message
2051
2052 eg consider a non-existent interface eth8, curl --interface eth8
2053
2054 Before: curl: (45) Could not resolve host: eth8
2055 After: curl: (45) Couldn't bind to 'eth8'
2056
2057 Bug: https://github.com/curl/curl/issues/2104
2058 Reported-by: Alfonso Martone
2059
2060Daniel Stenberg (23 Nov 2017)
2061- examples/rtsp: clear RANGE again after use
2062
2063 Fixes #2106
2064 Reported-by: youngchopin on github
2065
2066- [Michael Kaufmann brought this change]
2067
2068 test1264: verify URL with space in host name being rejected
2069
2070- url: reject ASCII control characters and space in host names
2071
2072 Host names like "127.0.0.1 moo" would otherwise be accepted by some
2073 getaddrinfo() implementations.
2074
2075 Updated test 1034 and 1035 accordingly.
2076
2077 Fixes #2073
2078 Closes #2092
2079
2080- Curl_open: fix OOM return error correctly
2081
2082 Closes #2098
2083
2084- http2: fix "Value stored to 'end' is never read" scan-build error
2085
2086- http2: fix "Value stored to 'hdbuf' is never read" scan-build error
2087
2088- openssl: fix "Value stored to 'rc' is never read" scan-build error
2089
2090- mime: fix "Value stored to 'sz' is never read" scan-build error
2091
2092- Curl_llist_remove: fix potential NULL pointer deref
2093
2094 Fixes a scan-build warning.
2095
2096- ntlm: remove unnecessary NULL-check to please scan-build
2097
2098- BUGS: spellchecked
2099
2100Jay Satiro (18 Nov 2017)
2101- [fmmedeiros brought this change]
2102
2103 examples/curlx: Fix code style
2104
2105 - Add braces around multi-line if statement.
2106
2107 Closes https://github.com/curl/curl/pull/2096
2108
2109Daniel Stenberg (17 Nov 2017)
2110- resolve: allow IP address within [] brackets
2111
2112 ... so that IPv6 addresses can be passed like they can for connect-to
2113 and how they're used in URLs.
2114
2115 Added test 1324 to verify
2116 Reported-by: Alex Malinovich
2117
2118 Fixes #2087
2119 Closes #2091
2120
2121- [Pavol Markovic brought this change]
2122
2123 macOS: Fix missing connectx function with Xcode version older than 9.0
2124
2125 The previous fix https://github.com/curl/curl/pull/1788 worked just for
2126 Xcode 9. This commit extends the fix to older Xcode versions effectively
2127 by not using connectx function.
2128
2129 Fixes https://github.com/curl/curl/issues/1330
2130 Fixes https://github.com/curl/curl/issues/2080
2131 Closes https://github.com/curl/curl/pull/1336
2132 Closes #2082
2133
2134- [Dirk Feytons brought this change]
2135
2136 openssl: fix too broad use of HAVE_OPAQUE_EVP_PKEY
2137
2138 Fixes #2079
2139 Closes #2081
2140
2141- TODO: ignore private IP addresses in PASV response
2142
2143 Closes #1455
2144
2145- RELEASE-NOTES: synced with ae7369b6d
2146
2147Michael Kaufmann (14 Nov 2017)
2148- URL: return error on malformed URLs with junk after IPv6 bracket
2149
2150 Follow-up to aadb7c7. Verified by new test 1263.
2151
2152 Closes #2072
2153
2154Daniel Stenberg (14 Nov 2017)
2155- INTERNALS: we may use libidn2 now, not libidn
2156
2157Patrick Monnerat (13 Nov 2017)
2158- zlib/brotli: only include header files in modules needing them
2159
2160 There is a conflict on symbol 'free_func' between openssl/crypto.h and
2161 zlib.h on AIX. This is an attempt to resolve it.
2162
2163 Bug: https://curl.haxx.se/mail/lib-2017-11/0032.html
2164 Reported-By: Michael Felt
2165
2166Daniel Stenberg (13 Nov 2017)
2167- SMB: fix uninitialized local variable
2168
2169 Reported-by: Brian Carpenter
2170
2171- [Orgad Shaneh brought this change]
2172
2173 connect.c: remove executable bit on file
2174
2175 Closes #2071
2176
2177- [hsiao yi brought this change]
2178
2179 README.md: fixed layout
2180
2181 Closes #2069
2182
2183- setopt: split out curl_easy_setopt() to its own file
2184
2185 ... to make url.c smaller.
2186
2187 Closes #1944
2188
2189Jay Satiro (10 Nov 2017)
2190- [John Starks brought this change]
2191
2192 cmake: Add missing setmode check
2193
2194 Ensure HAVE_SETMODE is set to 1 on OSes that have setmode. Without this,
2195 curl will corrupt binary files when writing them to stdout on Windows.
2196
2197 Closes https://github.com/curl/curl/pull/2067
2198
2199Daniel Stenberg (10 Nov 2017)
2200- curl_share_setopt: va_end was not called if conncache errors
2201
2202 CID 984459, detected by Coverity
2203
2204Sergei Nikulov (10 Nov 2017)
2205- [John Starks brought this change]
2206
2207 cmake: Correctly include curl.rc in Windows builds (#2064)
2208
2209 Update CMakeLists.txt to add curl.rc to the correct list.
2210
2211Daniel Stenberg (9 Nov 2017)
2212- RELEASE-NOTES: synced with 32828cc4f
2213
2214- [Luca Boccassi brought this change]
2215
2216 --interface: add support for Linux VRF
2217
2218 The --interface command (CURLOPT_INTERFACE option) already uses
2219 SO_BINDTODEVICE on Linux, but it tries to parse it as an interface or IP
2220 address first, which fails in case the user passes a VRF.
2221
2222 Try to use the socket option immediately and parse it as a fallback
2223 instead. Update the documentation to mention this feature, and that it
2224 requires the binary to be ran by root or with CAP_NET_RAW capabilities
2225 for this to work.
2226
2227 Closes #2024
2228
2229- curl_share_setopt.3: document CURL_LOCK_DATA_CONNECT
2230
2231 Closes #2043
2232
2233- examples: add shared-connection-cache
2234
2235- test1554: verify connection cache sharing
2236
2237- share: add support for sharing the connection cache
2238
2239- imap: deal with commands case insensitively
2240
2241 As documented in RFC 3501 section 9:
2242 https://tools.ietf.org/html/rfc3501#section-9
2243
2244 Closes #2061
2245
2246- connect: store IPv6 connection status after valid connection
2247
2248 ... previously it would store it already in the happy eyeballs stage
2249 which could lead to the IPv6 bit being set for an IPv4 connection,
2250 leading to curl not wanting to do EPSV=>PASV for FTP transfers.
2251
2252 Closes #2053
2253
2254- curl_multi_fdset.3: emphasize curl_multi_timeout
2255
2256 ... even when there's no socket to wait for, the timeout can still be
2257 very short.
2258
2259Jay Satiro (9 Nov 2017)
2260- content_encoding: fix inflate_stream for no bytes available
2261
2262 - Don't call zlib's inflate() when avail_in stream bytes is 0.
2263
2264 This is a follow up to the parent commit 19e66e5. Prior to that change
2265 libcurl's inflate_stream could call zlib's inflate even when no bytes
2266 were available, causing inflate to return Z_BUF_ERROR, and then
2267 inflate_stream would treat that as a hard error and return
2268 CURLE_BAD_CONTENT_ENCODING.
2269
2270 According to the zlib FAQ, Z_BUF_ERROR is not fatal.
2271
2272 This bug would happen randomly since packet sizes are arbitrary. A test
2273 of 10,000 transfers had 55 fail (ie 0.55%).
2274
2275 Ref: https://zlib.net/zlib_faq.html#faq05
2276
2277 Closes https://github.com/curl/curl/pull/2060
2278
2279Patrick Monnerat (7 Nov 2017)
2280- content_encoding: do not write 0 length data
2281
2282Daniel Stenberg (6 Nov 2017)
2283- fnmatch: remove dead code
2284
2285 There was a duplicate check for backslashes in the setcharset()
2286 function.
2287
2288 Coverity CID 1420611
2289
2290- url: remove unncessary NULL-check
2291
2292 Since 'conn' won't be NULL in there and we also access the pointer in
2293 there without the check.
2294
2295 Coverity CID 1420610
2296
Elliott Hughescac39802018-04-27 16:19:43 -07002297Viktor Szakats (6 Nov 2017)
Alex Deymo486467e2017-12-19 19:04:07 +01002298- src/Makefile.m32: fix typo in brotli lib customization
2299
2300 Ref cc1f4436099decb9d1a7034b2bb773a9f8379d31
2301
2302- Makefile.m32: allow to customize brotli libs
2303
2304 It adds the ability to link against static brotli libs.
2305
2306 Also fix brotli include path.
2307
2308Patrick Monnerat (5 Nov 2017)
2309- travis: add a job with brotli enabled
2310
Elliott Hughescac39802018-04-27 16:19:43 -07002311- [Viktor Szakats brought this change]
Alex Deymo486467e2017-12-19 19:04:07 +01002312
2313 Makefile.m32: add brotli support
2314
2315- HTTP: implement Brotli content encoding
2316
2317 This uses the brotli external library (https://github.com/google/brotli).
2318 Brotli becomes a feature: additional curl_version_info() bit and
2319 structure fields are provided for it and CURLVERSION_NOW bumped.
2320
2321 Tests 314 and 315 check Brotli content unencoding with correct and
2322 erroneous data.
2323
2324 Some tests are updated to accomodate with the now configuration dependent
2325 parameters of the Accept-Encoding header.
2326
2327- HTTP: support multiple Content-Encodings
2328
2329 This is implemented as an output streaming stack of unencoders, the last
2330 calling the client write procedure.
2331
2332 New test 230 checks this feature.
2333
2334 Bug: https://github.com/curl/curl/pull/2002
2335 Reported-By: Daniel Bankhead
2336
2337Jay Satiro (4 Nov 2017)
2338- url: remove arg value check from CURLOPT_SSH_AUTH_TYPES
2339
2340 Since CURLSSH_AUTH_ANY (aka CURLSSH_AUTH_DEFAULT) is ~0 an arg value
2341 check on this option is incorrect; we have to accept any value.
2342
2343 Prior to this change since f121575 (7.56.1+) CURLOPT_SSH_AUTH_TYPES
2344 erroneously rejected CURLSSH_AUTH_ANY with CURLE_BAD_FUNCTION_ARGUMENT.
2345
2346 Bug: https://github.com/curl/curl/commit/f121575#commitcomment-25347120
2347
2348Daniel Stenberg (4 Nov 2017)
2349- ntlm: avoid malloc(0) for zero length passwords
2350
2351 It triggers an assert() when built with memdebug since malloc(0) may
2352 return NULL *or* a valid pointer.
2353
2354 Detected by OSS-Fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4054
2355
2356 Assisted-by: Max Dymond
2357 Closes #2054
2358
2359- RELEASE-NOTES: synced with ee8016b3d
2360
2361- curl: speed up handling of many URLs
2362
2363 By properly keeping track of the last entry in the list of URLs/uploads
2364 to handle, curl now avoids many meaningless traverses of the list which
2365 speeds up many-URL handling *MASSIVELY* (several magnitudes on 100K
2366 URLs).
2367
2368 Added test 1291, to verify that it doesn't take ages - but we don't have
2369 any detection of "too slow" command in the test suite.
2370
2371 Reported-by: arainchik on github
2372 Fixes #1959
2373 Closes #2052
2374
2375- curl: pass through [] in URLs instead of calling globbing error
2376
2377 Assisted-by: Per Lundberg
2378 Fixes #2044
2379 Closes #2046
2380 Closes #2048
2381
2382- CURLOPT_INFILESIZE: accept -1
2383
2384 Regression since f121575
2385
2386 Reported-by: Petr Voytsik
2387 Fixes #2047
2388
2389Jay Satiro (2 Nov 2017)
2390- url: fix CURLOPT_DNS_CACHE_TIMEOUT arg value check to allow -1
2391
2392 Prior to this change since f121575 (7.56.1+) CURLOPT_DNS_CACHE_TIMEOUT
2393 erroneously rejected -1 with CURLE_BAD_FUNCTION_ARGUMENT.
2394
2395Dan Fandrich (1 Nov 2017)
2396- http2: Fixed OOM handling in upgrade request
2397
2398 This caused the torture tests on test 1800 to fail.
2399
2400- tests: Fixed torture tests on tests 556 and 650
2401
2402 Test cleanup after OOM wasn't being consistently performed.
2403
2404Daniel Stenberg (1 Nov 2017)
2405- CURLOPT_MAXREDIRS: allow -1 as a value
2406
2407 ... which is valid according to documentation. Regression since
2408 f121575c0b5f.
2409
2410 Verified now in test 501.
2411
2412 Reported-by: cbartl on github
2413 Fixes #2038
2414 Closes #2039
2415
2416- include: remove conncache.h inclusion from where its not needed
2417
2418Jay Satiro (1 Nov 2017)
2419- url: fix CURLOPT_POSTFIELDSIZE arg value check to allow -1
2420
2421 .. also add same arg value check to CURLOPT_POSTFIELDSIZE_LARGE.
2422
2423 Prior to this change since f121575 (7.56.1+) CURLOPT_POSTFIELDSIZE
2424 erroneously rejected -1 value with CURLE_BAD_FUNCTION_ARGUMENT.
2425
2426 Bug: https://curl.haxx.se/mail/lib-2017-11/0000.html
2427 Reported-by: Andrew Lambert
2428
2429Daniel Stenberg (31 Oct 2017)
2430- cookie: avoid NULL dereference
2431
2432 ... when expiring old cookies.
2433
2434 Reported-by: Pavel Gushchin
2435 Fixes #2032
2436 Closes #2035
2437
2438Marcel Raad (30 Oct 2017)
2439- memdebug: use send/recv signature for curl_dosend/curl_dorecv
2440
2441 This avoids build errors and warnings caused by implicit casts.
2442
2443 Closes https://github.com/curl/curl/pull/2031
2444
2445Daniel Stenberg (30 Oct 2017)
2446- [Juro Bystricky brought this change]
2447
2448 mkhelp.pl: support reproducible build
2449
2450 Do not generate line with the current date, such as:
2451
2452 * Generation time: Tue Oct-24 18:01:41 2017
2453
2454 This will improve reproducibility. The generated string is only
2455 part of a comment, so there should be no adverse consequences.
2456
2457 Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
2458
2459 closes #2026
2460
2461Dan Fandrich (30 Oct 2017)
2462- runtests.pl: Fixed typo in message
2463
2464Daniel Stenberg (30 Oct 2017)
2465- curlx: the timeval functions are no longer provided as curlx_*
2466
2467 Pointed-out-by: Dmitri Tikhonov
2468 Bug: #2034
2469
2470- select: update comments
2471
2472 s/curlx_tvnow/Curl_now
2473
2474- INTERNALS: remove curlx_tv* functions no longer provided
2475
2476- [Dmitri Tikhonov brought this change]
2477
2478 timeval: use mach time on MacOS
2479
2480 If clock_gettime() is not supported, use mach_absolute_time() on MacOS.
2481
2482 closes #2033
2483
2484monnerat (29 Oct 2017)
2485- [Patrick Monnerat brought this change]
2486
2487 cli tool: improve ";type=" handling in -F option arguments
2488
2489- [Patrick Monnerat brought this change]
2490
2491 cli tool: in -F option arg, comma is a delimiter for files only
2492
2493 Also upgrade test 1133 to cover this case and clarify man page about
2494 form data quoting.
2495
2496 Bug: https://github.com/curl/curl/issues/2022
2497 Reported-By: omau on github
2498
2499Daniel Stenberg (29 Oct 2017)
2500- timeleft: made two more users of Curl_timeleft use timediff_t
2501
2502Jakub Zakrzewski (28 Oct 2017)
2503- cmake: Export libcurl and curl targets to use by other cmake projects
2504
2505 The config files define curl and libcurl targets as imported targets
2506 CURL::curl and CURL::libcurl. For backward compatibility with CMake-
2507 provided find-module the CURL_INCLUDE_DIRS and CURL_LIBRARIES are
2508 also set.
2509
2510 Closes #1879
2511
2512Daniel Stenberg (28 Oct 2017)
2513- RELEASE-NOTES: synced with f20cbac97
2514
Elliott Hughes0128fe42018-02-27 14:57:55 -08002515- [Florin Petriuc brought this change]
Alex Deymo486467e2017-12-19 19:04:07 +01002516
2517 auth: Added test cases for RFC7616
2518
2519 Updated docs to include support for RFC7616
2520
2521 Signed-off-by: Florin <petriuc.florin@gmail.com>
2522
2523 Closes #1934
2524
Elliott Hughes0128fe42018-02-27 14:57:55 -08002525- [Florin Petriuc brought this change]
Alex Deymo486467e2017-12-19 19:04:07 +01002526
2527 auth: add support for RFC7616 - HTTP Digest access authentication
2528
2529 Signed-off-by: Florin <petriuc.florin@gmail.com>
2530
2531- [Daniel Bankhead brought this change]
2532
2533 TODO: support multiple Content-Encodings
2534
2535 Closes #2002
2536
2537- ROADMAP: cleanup
2538
2539 Removed done stuff. Removed entries no longer considered for the near
2540 term.
2541
2542- [Magicansk brought this change]
2543
2544 ROADMAP.md: spelling fixes
2545
2546 Closes #2028
2547
2548- Curl_timeleft: change return type to timediff_t
2549
2550 returning 'time_t' is problematic when that type is unsigned and we
2551 return values less than zero to signal "already expired", used in
2552 several places in the code.
2553
2554 Closes #2021
2555
2556- appveyor: add a win32 build
2557
2558- setopt: fix CURLOPT_SSH_AUTH_TYPES option read
2559
2560 Regression since f121575c0b5f
2561
2562 Reported-by: Rob Cotrone
2563
2564Marcel Raad (27 Oct 2017)
2565- resolvers: only include anything if needed
2566
2567 This avoids warnings about unused stuff.
2568
2569 Closes https://github.com/curl/curl/pull/2023
2570
2571Daniel Stenberg (27 Oct 2017)
2572- HELP-US: rename the subtitle too since the label is changed
2573
2574 "PR-welcome" was the former name.
2575
2576- curl_setup.h: oops, shorten the too long line
2577
2578- [Martin Storsjo brought this change]
2579
2580 curl_setup: Improve detection of CURL_WINDOWS_APP
2581
2582 If WINAPI_FAMILY is defined, it should be safe to try to include
2583 winapifamily.h to check what the define evaluates to.
2584
2585 This should fix detection of CURL_WINDOWS_APP if building with
2586 _WIN32_WINNT set to 0x0600.
2587
2588 Closes #2025
2589
2590Jay Satiro (26 Oct 2017)
2591- transfer: Fix chunked-encoding upload bug
2592
2593 - When uploading via chunked-encoding don't compare file size to bytes
2594 sent to determine whether the upload has finished.
2595
2596 Chunked-encoding adds its own overhead which why the bytes sent is not
2597 equal to the file size. Prior to this change if a file was uploaded in
2598 chunked-encoding and its size was known it was possible that the upload
2599 could end prematurely without sending the final few chunks. That would
2600 result in a server hang waiting for the remaining data, likely followed
2601 by a disconnect.
2602
2603 The scope of this bug is limited to some arbitrary file sizes which have
2604 not been determined. One size that triggers the bug is 475020.
2605
2606 Bug: https://github.com/curl/curl/issues/2001
2607 Reported-by: moohoorama@users.noreply.github.com
2608
2609 Closes https://github.com/curl/curl/pull/2010
2610
2611Daniel Stenberg (26 Oct 2017)
2612- timeval: make timediff_t also work on 32bit windows
2613
2614 ... by using curl_off_t for the typedef if time_t is larger than 4
2615 bytes.
2616
2617 Reported-by: Gisle Vanem
2618 Bug: https://github.com/curl/curl/commit/b9d25f9a6b3ca791385b80a6a3c3fa5ae113e1e0#co
2619 mmitcomment-25205058
2620 Closes #2019
2621
2622- curl_fnmatch: return error on illegal wildcard pattern
2623
2624 ... instead of doing an infinite loop!
2625
2626 Added test 1162 to verify.
2627
2628 Reported-by: Max Dymond
2629 Fixes #2015
2630 Closes #2017
2631
2632- [Max Dymond brought this change]
2633
2634 wildcards: don't use with non-supported protocols
2635
2636 Fixes timeouts in the fuzzing tests for non-FTP protocols.
2637
2638 Closes #2016
2639
2640- [Max Dymond brought this change]
2641
2642 multi: allow table handle sizes to be overridden
2643
2644 Allow users to specify their own hash define for
2645 CURL_CONNECTION_HASH_SIZE so that both values can be overridden.
2646
2647 Closes #1982
2648
2649- time: rename Curl_tvnow to Curl_now
2650
2651 ... since the 'tv' stood for timeval and this function does not return a
2652 timeval struct anymore.
2653
2654 Also, cleaned up the Curl_timediff*() functions to avoid typecasts and
2655 clean up the descriptive comments.
2656
2657 Closes #2011
2658
2659- ftplistparser: follow-up cleanup to remove PL_ERROR()
2660
2661- [Max Dymond brought this change]
2662
2663 ftplistparser: free off temporary memory always
2664
2665 When using the FTP list parser, ensure that the memory that's
2666 allocated is always freed.
2667
2668 Detected by OSS-fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3682
2669 Closes #2013
2670
2671- timediff: return timediff_t from the time diff functions
2672
2673 ... to cater for systems with unsigned time_t variables.
2674
2675 - Renamed the functions to curlx_timediff and Curl_timediff_us.
2676
2677 - Added overflow protection for both of them in either direction for
2678 both 32 bit and 64 bit time_ts
2679
2680 - Reprefixed the curlx_time functions to use Curl_*
2681
2682 Reported-by: Peter Piekarski
2683 Fixes #2004
2684 Closes #2005
2685
2686- [Paul Howarth brought this change]
2687
2688 libtest: Add required test libraries for lib1552 and lib1553
2689
2690 They use $(TESTUTIL) and thus should use $(TESTUTIL_LIBS) too.
2691
2692 This fixes build failures on Fedora 13.
2693
2694 Closes #2006
2695
2696- [Alessandro Ghedini brought this change]
2697
2698 libcurl-tutorial.3: fix typo
2699
2700 closes #2008
2701
2702Alessandro Ghedini (23 Oct 2017)
2703- curl_mime_filedata.3: fix typos
2704
2705Daniel Stenberg (23 Oct 2017)
2706- RELEASE-NOTES: clean slate towards 7.57.0
2707
2708- [Max Dymond brought this change]
2709
2710 travis: exit if any steps fail
2711
2712 We don't expect any steps to fail in travis. Exit the script if they do.
2713
2714 Closes #1966
2715
2716Version 7.56.1 (23 Oct 2017)
2717
2718Daniel Stenberg (23 Oct 2017)
2719- RELEASE-NOTES: 7.56.1
2720
2721- THANKS: update at 7.56.1 release time
2722
2723- [Jon DeVree brought this change]
2724
2725 mk-ca-bundle: Remove URL for aurora
2726
2727 Aurora is no longer used by Mozilla
2728 https://hacks.mozilla.org/2017/04/simplifying-firefox-release-channels/
2729
2730- [Jon DeVree brought this change]
2731
2732 mk-ca-bundle: Fix URL for NSS
2733
2734 The 'tip' is the most recent branch committed to, this should be
2735 'default' like the URLs for the browser are.
2736
2737 Closes #1998
2738
2739- imap: if a FETCH response has no size, don't call write callback
2740
2741 CVE-2017-1000257
2742
2743 Reported-by: Brian Carpenter and 0xd34db347
2744 Also detected by OSS-Fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3586
2745
2746- ftp: reject illegal IP/port in PASV 227 response
2747
2748 ... by using range checks. Among other things, this avoids an undefined
2749 behavior for a left shift that could happen on negative or very large
2750 values.
2751
2752 Closes #1997
2753
2754 Detected by OSS-fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3694
2755
2756Patrick Monnerat (20 Oct 2017)
2757- test653: check reuse of easy handle after mime data change
2758
2759 See issue #1999
2760
2761- mime: do not reuse previously computed multipart size
2762
2763 The contents might have changed: size must be recomputed.
2764
2765 Reported-by: moteus on github
2766 Fixes #1999
2767
2768- test308: disable if MultiSSL feature enabled
2769
2770 Even if OpenSSL is enabled, it might not be the default backend when
2771 multi-ssl is enabled, causing the test to fail.
2772
2773- runtests: support MultiSSL client feature
2774
2775- vtls: change struct Curl_ssl `close' field name to `close_one'.
2776
2777 On OS/400, `close' is an ASCII system macro that corrupts the code if
2778 not used in a context not targetting the close() system API.
2779
2780- os400: add missing symbols in config file.
2781
2782 Also adjust makefile to renamed files and warn about installation dirs mix-up.
2783
2784- test652: curl_mime_data + base64 encoder with large contents
2785
2786- mime: limit bas64-encoded lines length to 76 characters
2787
2788Daniel Stenberg (16 Oct 2017)
2789- RELEASE-NOTES: synced with f121575c0
2790
2791- setopt: range check most long options
2792
2793 ... filter early instead of risking "funny values" having to be dealt
2794 with elsewhere.
2795
2796- setopt: avoid integer overflows when setting millsecond values
2797
2798 ... that are multiplied by 1000 when stored.
2799
2800 For 32 bit long systems, the max value accepted (2147483 seconds) is >
2801 596 hours which is unlikely to ever be set by a legitimate application -
2802 and previously it didn't work either, it just caused undefined behavior.
2803
2804 Also updated the man pages for these timeout options to mention the
2805 return code.
2806
2807 Closes #1938
2808
Elliott Hughescac39802018-04-27 16:19:43 -07002809Viktor Szakats (15 Oct 2017)
Alex Deymo486467e2017-12-19 19:04:07 +01002810- makefile.m32: allow to override gcc, ar and ranlib
2811
2812 Allow to ovverride certain build tools, making it possible to
2813 use LLVM/Clang to build curl. The default behavior is unchanged.
2814 To build with clang (as offered by MSYS2), these settings can
2815 be used:
2816
2817 CURL_CC=clang
2818 CURL_AR=llvm-ar
2819 CURL_RANLIB=llvm-ranlib
2820
2821 Closes https://github.com/curl/curl/pull/1993
2822
2823- ldap: silence clang warning
2824
2825 Use memset() to initialize a structure to avoid LLVM/Clang warning:
2826 ldap.c:193:39: warning: missing field 'UserLength' initializer [-Wmissing-field-initializers]
2827
2828 Closes https://github.com/curl/curl/pull/1992
2829
2830Daniel Stenberg (14 Oct 2017)
2831- runtests: use valgrind for torture as well
2832
2833 NOTE: it makes them terribly slow. I recommend only using valgrind for
2834 specific torture tests or using lots of patience.
2835
2836- memdebug: trace send, recv and socket
2837
2838 ... to allow them to be included in torture tests too.
2839
2840 closes #1980
2841
2842- configure: remove the C++ compiler check
2843
2844 ... we used it only for the fuzzer, which we now have in a separate git
2845 repo.
2846
2847 Closes #1990
2848
2849Patrick Monnerat (13 Oct 2017)
2850- mime: do not call failf() if easy handle is NULL.
2851
2852Daniel Stenberg (13 Oct 2017)
2853- test651: curl_formadd with huge COPYCONTENTS
2854
2855- mime: fix the content reader to handle >16K data properly
2856
2857 Reported-by: Jeroen Ooms
2858 Closes #1988
2859
2860Patrick Monnerat (12 Oct 2017)
2861- mime: keep "text/plain" content type if user-specified.
2862
2863 Include test cases in 554, 587, 650.
2864
2865 Fixes https://github.com/curl/curl/issues/1986
2866
2867- cli tool: use file2memory() to buffer stdin in -F option.
2868
2869 Closes PR https://github.com/curl/curl/pull/1985
2870
2871- cli tool: reimplement stdin buffering in -F option.
2872
2873 If stdin is not a regular file, its content is memory-buffered to enable
2874 a possible data "rewind".
2875 In all cases, stdin data size is determined before real use to avoid
2876 having an unknown part's size.
2877
2878 --libcurl generated code is left as an unbuffered stdin fread/fseek callback
2879 part with unknown data size.
2880
2881 Buffering is not supported in deprecated curl_formadd() API.
2882
2883Daniel Stenberg (12 Oct 2017)
2884- winbuild/BUILD.WINDOWS.txt: mention WITH_NGHTTP2
2885
2886- HELP-US: the label "PR-welcome" is now renamed to "help wanted"
2887
2888 following the new github "standard"
2889
2890- RELEASE-NOTES: synced with 5505df7d2
2891
2892Jay Satiro (11 Oct 2017)
2893- [Artak Galoyan brought this change]
2894
2895 url: Update current connection SSL verify params in setopt
2896
2897 Now VERIFYHOST, VERIFYPEER and VERIFYSTATUS options change during active
2898 connection updates the current connection's (i.e.'connectdata'
2899 structure) appropriate ssl_config (and ssl_proxy_config) structures
2900 variables, making these options effective for ongoing connection.
2901
2902 This functionality was available before and was broken by the
2903 following change:
2904 "proxy: Support HTTPS proxy and SOCKS+HTTP(s)"
2905 CommitId: cb4e2be7c6d42ca0780f8e0a747cecf9ba45f151.
2906
2907 Bug: https://github.com/curl/curl/issues/1941
2908
2909 Closes https://github.com/curl/curl/pull/1951
2910
2911Daniel Stenberg (11 Oct 2017)
2912- [David Benjamin brought this change]
2913
2914 openssl: don't use old BORINGSSL_YYYYMM macros
2915
2916 Those were temporary things we'd add and remove for our own convenience
2917 long ago. The last few stayed around for too long as an oversight but
2918 have since been removed. These days we have a running
2919 BORINGSSL_API_VERSION counter which is bumped when we find it
2920 convenient, but 2015-11-19 was quite some time ago, so just check
2921 OPENSSL_IS_BORINGSSL.
2922
2923 Closes #1979
2924
2925- test950; verify SMTP with custom request
2926
2927- ftpserver: support case insensitive commands
2928
2929- smtp_done: free data before returning (on send failure)
2930
2931 ... as otherwise it could leak that memory.
2932
2933 Detected by OSS-fuzz:
2934 https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3600
2935
2936 Assisted-by: Max Dymond
2937 Closes #1977
2938
2939- FTP: URL decode path for dir listing in nocwd mode
2940
2941 Reported-by: Zenju on github
2942
2943 Test 244 added to verify
2944 Fixes #1974
2945 Closes #1976
2946
2947- test298: verify --ftp-method nowcwd with URL encoded path
2948
2949 Ref: #1974
2950
2951- CURLOPT_XFERINFODATA.3: fix duplicate see also
2952
2953- CURLOPT_NOPROGRESS.3: also refer to xferinfofunction
2954
2955- FAQ: s/CURLOPT_PROGRESSFUNCTION/CURLOPT_XFERINFOFUNCTION
2956
2957- openssl: enable PKCS12 support for !BoringSSL
2958
2959 Enable PKCS12 for all non-boringssl builds without relying on configure
2960 or cmake checks.
2961
2962 Bug: https://curl.haxx.se/mail/lib-2017-10/0007.html
2963 Reported-by: Christian Schmitz
2964 Closes #1948
2965
2966- [Kristiyan Tsaklev brought this change]
2967
2968 curl: don't pass semicolons when parsing Content-Disposition
2969
2970 Test 1422 updated to verify.
2971
2972 Closes #1964
2973
2974Patrick Monnerat (9 Oct 2017)
2975- mime: properly unbind mime structure in curl_mime_free().
2976
2977 This allows freeing a mime structure bound to the easy handle before
2978 curl_easy_cleanup().
2979
2980 Fixes #1970.
2981
2982Daniel Stenberg (9 Oct 2017)
2983- RTSP: avoid integer overflow on funny RTSP response
2984
2985 ... like a very large non-existing RTSP version number.
2986
2987 Added test 577 to verify.
2988
2989 Detected by OSS-fuzz.
2990 Closes #1969
2991
2992Patrick Monnerat (8 Oct 2017)
2993- ftpserver: properly reset $ftptargetdir.
2994
2995- test643: verify curl_mime_subparts() rejects cyclic additions.
2996
2997- mime: refuse to add subparts to one of their own descendants.
2998
2999 Reported-by: Alexey Melnichuk
3000 Fixes #1962
3001
3002- mime: avoid resetting a part's encoder when part's contents change.
3003
3004- mime: improve unbinding top multipart from easy handle.
3005
3006 Also avoid dangling pointers in referencing parts.
3007
3008Daniel Stenberg (8 Oct 2017)
3009- RELEASE-NOTES: synced with a4c1c75da30af1
3010
3011- curlver.h: next expected release is 7.57.0
3012
3013Patrick Monnerat (8 Oct 2017)
3014- mime: be tolerant about setting twice the same header list in a part.
3015
3016- docs: clarify form/mime usage of non-regular data files.
3017
3018Daniel Stenberg (8 Oct 2017)
3019- Revert "multi_done: wait for name resolve to finish if still ongoing"
3020
3021 This reverts commit f3e03f6c0ac52a1bf396e03f7d7e9b5b3b7165fe.
3022
3023 Caused memory leaks in the fuzzer, needs to be done differently.
3024
3025 Disable test 1553 for now too, as it causes memory leaks without this
3026 commit!
3027
3028- remove_handle: call multi_done() first, then clear dns cache pointer
3029
3030 Closes #1960
3031
3032- multi_done: wait for name resolve to finish if still ongoing
3033
3034 ... as we must clean up memory.
3035
3036- pingpong: return error when trying to send without connection
3037
3038 When imap_done() got called before a connection is setup, it would try
3039 to "finish up" and dereffed a NULL pointer.
3040
3041 Test case 1553 managed to reproduce. I had to actually use a host name
3042 to try to resolve to slow it down, as using the normal local server IP
3043 will make libcurl get a connection in the first curl_multi_perform()
3044 loop and then the bug doesn't trigger.
3045
3046 Fixes #1953
3047 Assisted-by: Max Dymond
3048
3049Dan Fandrich (6 Oct 2017)
3050- tests: added flaky keyword to tests 587 and 644
3051
3052 These are around 5% flaky in my Linux x86 autobuilds.
3053
3054Marcel Raad (6 Oct 2017)
3055- vtls: fix warnings with --disable-crypto-auth
3056
3057 When CURL_DISABLE_CRYPTO_AUTH is defined, Curl_none_md5sum's parameters
3058 are not used.
3059
3060Daniel Stenberg (6 Oct 2017)
3061- multi_cleanup: call DONE on handles that never got that
3062
3063 ... fixes a memory leak with at least IMAP when remove_handle is never
3064 called and the transfer is abruptly just abandoned early.
3065
3066 Test 1552 added to verify
3067
3068 Detected by OSS-fuzz
3069 Assisted-by: Max Dymond
3070 Closes #1954
3071
3072- [Benbuck Nason brought this change]
3073
3074 strtoofft: Remove extraneous null check
3075
3076 Fixes #1950: curlx_strtoofft() doesn't fully protect against null 'str'
3077 argument.
3078
3079 Closes #1952
3080
3081- openssl: fix build without HAVE_OPAQUE_EVP_PKEY
3082
3083 Reported-by: Javier Sixto
3084 Fixes #1955
3085 Closes #1956
3086
Elliott Hughescac39802018-04-27 16:19:43 -07003087Viktor Szakats (6 Oct 2017)
Alex Deymo486467e2017-12-19 19:04:07 +01003088- lib/config-win32.h: let SMB/SMBS be enabled with OpenSSL/NSS
3089
3090 The source code is now prepared to handle the case when both
3091 Win32 Crypto and OpenSSL/NSS crypto backends are enabled
3092 at the same time, making it now possible to enable `USE_WIN32_CRYPTO`
3093 whenever the targeted Windows version supports it. Since this
3094 matches the minimum Windows version supported by curl
3095 (Windows 2000), enable it unconditionally for the Win32 platform.
3096
3097 This in turn enables SMB (and SMBS) protocol support whenever
3098 Win32 Crypto is available, regardless of what other crypto backends
3099 are enabled.
3100
3101 Ref: https://github.com/curl/curl/pull/1840#issuecomment-325682052
3102
3103 Closes https://github.com/curl/curl/pull/1943
3104
3105Daniel Stenberg (5 Oct 2017)
3106- build: fix --disable-crypto-auth
3107
3108 Reported-by: Wyatt O'Day
3109 Fixes #1945
3110 Closes #1947
3111
3112Jay Satiro (5 Oct 2017)
3113- [Nick Zitzmann brought this change]
3114
3115 darwinssl: add support for TLSv1.3
3116
3117 Closes https://github.com/curl/curl/pull/1794
3118
3119Daniel Stenberg (4 Oct 2017)
3120- [Felix Kaiser brought this change]
3121
3122 docs: fix typo in curl_mime_data_cb man page
3123
3124 Closes #1946
3125
Elliott Hughescac39802018-04-27 16:19:43 -07003126Viktor Szakats (4 Oct 2017)
Alex Deymo486467e2017-12-19 19:04:07 +01003127- lib/Makefile.m32: allow customizing dll suffixes
3128
3129 - New `CURL_DLL_SUFFIX` envvar will add a suffix to the generated
3130 libcurl dll name. Useful to add `-x64` to 64-bit builds so that
3131 it can live in the same directory as the 32-bit one. By default
3132 this is empty.
3133
3134 - New `CURL_DLL_A_SUFFIX` envvar to customize the suffix of the
3135 generated import library (implib) for libcurl .dll. It defaults
3136 to `dll`, and it's useful to modify that to `.dll` to have the
3137 standard naming scheme for mingw-built .dlls, i.e. `libcurl.dll.a`.
3138
3139 Closes https://github.com/curl/curl/pull/1942
3140
3141Daniel Stenberg (4 Oct 2017)
3142- [Max Dymond brought this change]
3143
3144 fuzzer: move to using external curl-fuzzer
3145
3146 Use the external curl-fuzzer repository for fuzzing.
3147
3148 Closes #1923
3149
3150- failf: skip the sprintf() if there are no consumers
3151
3152 Closes #1936
3153
3154- ftp: UBsan fixup 'pointer index expression overflowed'
3155
3156 Closes #1939
3157
3158- RELEASE-PROCEDURE: update the release schedule
3159
3160Version 7.56.0 (4 Oct 2017)
3161
3162Daniel Stenberg (4 Oct 2017)
3163- RELEASE-NOTES: curl 7.56.0
3164
3165- THANKS: added new 7.56.0 contributors
3166
3167Jay Satiro (4 Oct 2017)
3168- build-openssl.bat: Warn OpenSSL 1.1.0 not yet supported
3169
3170 Ref: https://github.com/curl/curl/issues/1002
3171
3172Michael Kaufmann (3 Oct 2017)
3173- idn: fix source code comment
3174
3175- vtls: compare and clone ssl configs properly
3176
3177 Compare these settings in Curl_ssl_config_matches():
3178 - verifystatus (CURLOPT_SSL_VERIFYSTATUS)
3179 - random_file (CURLOPT_RANDOM_FILE)
3180 - egdsocket (CURLOPT_EGDSOCKET)
3181
3182 Also copy the setting "verifystatus" in Curl_clone_primary_ssl_config(),
3183 and copy the setting "sessionid" unconditionally.
3184
3185 This means that reusing connections that are secured with a client
3186 certificate is now possible, and the statement "TLS session resumption
3187 is disabled when a client certificate is used" in the old advisory at
3188 https://curl.haxx.se/docs/adv_20170419.html is obsolete.
3189
3190 Reviewed-by: Daniel Stenberg
3191
3192 Closes #1917
3193
3194- proxy: read the "no_proxy" variable only if necessary
3195
3196 Reviewed-by: Daniel Stenberg
3197
3198 Closes #1919
3199
3200Patrick Monnerat (3 Oct 2017)
3201- libcurl-tutorial: add casts in example to avoid compilation warnings.
3202
3203Daniel Stenberg (3 Oct 2017)
3204- examples: bring back curl_formadd-using examples
3205
3206 ... now with a -formadd suffix. While the new mime API is introduced in
3207 7.56.0 we must acknowledge that lots of users can't upgrade their curl
3208 versions immediately.
3209
3210- test1153: verify quoted double-qoutes in PWD response
3211
3212- FTP: zero terminate the entry path even on bad input
3213
3214 ... a single double quote could leave the entry path buffer without a zero
3215 terminating byte. CVE-2017-1000254
3216
3217 Test 1152 added to verify.
3218
3219 Reported-by: Max Dymond
3220 Bug: https://curl.haxx.se/docs/adv_20171004.html
3221
3222Jay Satiro (2 Oct 2017)
3223- [Sergei Nikulov brought this change]
3224
3225 cmake: disable tests and man generation if perl/nroff not found
3226
3227 Fixes https://github.com/curl/curl/issues/1500
3228 Reported-by: Jay Satiro
3229
3230 Fixes https://github.com/curl/curl/pull/1662
3231 Assisted-by: Tom Seddon
3232 Assisted-by: dpull@users.noreply.github.com
3233 Assisted-by: elelel@users.noreply.github.com
3234
3235 Closes https://github.com/curl/curl/pull/1924
3236
3237Patrick Monnerat (2 Oct 2017)
3238- libcurl-tutorial: fix two typos.
3239
3240- TODO: remove deprecated form API items.
3241
3242- libcurl-tutorial: describe MIME API and deprecate form API.
3243
3244 Include a guide to form/mime API conversion.
3245
3246Daniel Stenberg (30 Sep 2017)
3247- cookie: fix memory leak if path was set twice in header
3248
3249 ... this will let the second occurance override the first.
3250
3251 Added test 1161 to verify.
3252
3253 Reported-by: Max Dymond
3254 Fixes #1932
3255 Closes #1933
3256
3257Dan Fandrich (30 Sep 2017)
3258- test650: Use variable replacement to set the host address and port
3259
3260 Otherwise, the test fails when the -b test option is used to set a
3261 different test port range.
3262
3263- Set and use more necessary options when some protocols are disabled
3264
3265 When curl and libcurl are built with some protocols disabled, they stop
3266 setting and receiving some options that don't make sense with those
3267 protocols. In particular, when HTTP is disabled many options aren't set
3268 that are used only by HTTP. However, some options that appear to be
3269 HTTP-only are actually used by other protocols as well (some despite
3270 having HTTP in the name) and should be set, but weren't. This change now
3271 causes some of these options to be set and used for more (or for all)
3272 protocols. In particular, this fixes tests 646 through 649 in an
3273 HTTP-disabled build, which use the MIME API in the mail protocols.
3274
3275Daniel Stenberg (29 Sep 2017)
3276- test1160: verifies cookie leak for large cookies
3277
3278 The fix done in 20ea22ff735
3279
3280- cookie: fix memory leak on oversized rejection
3281
3282 Regression brought by 2bc230de63b
3283
3284 Detected by OSS-fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3513
3285 Assisted-by: Max Dymond
3286
3287 Closes #1930
3288
3289- [Anders Bakken brought this change]
3290
3291 connect: fix race condition with happy eyeballs timeout
3292
3293 The timer should be started after conn->connecttime is set. Otherwise
3294 the timer could expire without this condition being true:
3295
3296 /* should we try another protocol family? */
3297 if(i == 0 && conn->tempaddr[1] == NULL &&
3298 curlx_tvdiff(now, conn->connecttime) >= HAPPY_EYEBALLS_TIMEOUT) {
3299
3300 Ref: #1928
3301
3302Michael Kaufmann (28 Sep 2017)
3303- docs: link CURLOPT_CONNECTTIMEOUT and CURLOPT_CONNECTTIMEOUT_MS
3304
3305 Closes #1922
3306
3307- docs: clarify the use of environment variables for proxy
3308
3309 Closes #1921
3310
3311- http: add custom empty headers to repeated requests
3312
3313 Closes #1920
3314
3315- reuse_conn: don't copy flags that are known to be equal
3316
3317 A connection can only be reused if the flags "conn_to_host" and
3318 "conn_to_port" match. Therefore it is not necessary to copy these flags
3319 in reuse_conn().
3320
3321 Closes #1918
3322
3323Daniel Stenberg (27 Sep 2017)
3324- curl.h: include <sys/select.h> on cygwin too
3325
3326 When building with -std=c++14 on cygwin, this header won't be
3327 automatically included as it otherwise is.
3328
3329 The <sys/select.h> include decision should ideally be reversed and be
3330 avoided where that header file doesn't exist.
3331
3332 Reported-by: Ian Fette
3333 Fixes #1925
3334
3335- RELEASE-NOTES: synced with d8ab5dc50
3336
3337Michael Kaufmann (24 Sep 2017)
3338- tests: adjust .gitignore for new tests
3339
3340Jay Satiro (23 Sep 2017)
3341- ntlm: move NTLM_NEEDS_NSS_INIT define into core NTLM header
3342
3343 .. and include the core NTLM header in all NTLM-related source files.
3344
3345 Follow up to 6f86022. Since then http_ntlm checks NTLM_NEEDS_NSS_INIT
3346 but did not include vtls.h where it was defined.
3347
3348 Closes https://github.com/curl/curl/pull/1911
3349
3350Daniel Stenberg (23 Sep 2017)
3351- file_range: avoid integer overflow when figuring out byte range
3352
3353 When trying to bump the value with one and the value is already at max,
3354 it causes an integer overflow.
3355
3356 Closes #1908
3357 Detected by oss-fuzz:
3358 https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3465
3359
3360 Assisted-by: Max Dymond
3361
3362Michael Kaufmann (23 Sep 2017)
3363- tests: fix a compiler warning in test 643
3364
3365Jay Satiro (23 Sep 2017)
3366- symbols-in-versions: fix CURLSSLSET_NO_BACKENDS entry
3367
3368 - Use spaces instead of tabs as the delimiter.
3369
3370 Follow up to 7c52b12 which added the entry. The entry had used tabs but
3371 the symbol-scan parser doesn't recognize tabs and would fail the symbol.
3372
Elliott Hughescac39802018-04-27 16:19:43 -07003373Viktor Szakats (22 Sep 2017)
Alex Deymo486467e2017-12-19 19:04:07 +01003374- metalink: fix NSS issue in MultiSSL builds
3375
3376 In MultiSSL mode (i.e. when more than one SSL backend is compiled
3377 in), we cannot use the compile time flag `USE_NSS` as indicator that
3378 the NSS backend is in use. As far as Metalink is concerned, the SSL
3379 backend is only used for MD5, SHA-1 and SHA-256 calculations,
3380 therefore one of the available SSL backends is selected at compile
3381 time, in a strict order of preference.
3382
3383 Let's introduce a new `HAVE_NSS_CONTEXT` constant that can be used
3384 to determine whether the SSL backend used for Metalink is the NSS
3385 backend, and use that to guard the code that wants to de-initialize
3386 the NSS-specific data structure.
3387
3388 Ref: https://github.com/curl/curl/pull/1848
3389
3390- ntlm: use strict order for SSL backend #if branches
3391
3392 With the recently introduced MultiSSL support multiple SSL backends
3393 can be compiled into cURL That means that now the order of the SSL
3394
3395 One option would be to use the same SSL backend as was configured
3396 via `curl_global_sslset()`, however, NTLMv2 support would appear
3397 to be available only with some SSL backends. For example, when
3398 eb88d778e (ntlm: Use Windows Crypt API, 2014-12-02) introduced
3399 support for NTLMv1 using Windows' Crypt API, it specifically did
3400 *not* introduce NTLMv2 support using Crypt API at the same time.
3401
3402 So let's select one specific SSL backend for NTLM support when
3403 compiled with multiple SSL backends, using a priority order such
3404 that we support NTLMv2 even if only one compiled-in SSL backend can
3405 be used for that.
3406
3407 Ref: https://github.com/curl/curl/pull/1848
3408
3409Daniel Stenberg (22 Sep 2017)
3410- symbols-in-versions: add CURLSSLSET_NO_BACKENDS
3411
3412 ...fixup from b8e0fe19ec
3413
3414- imap: quote atoms properly when escaping characters
3415
3416 Updates test 800 to verify
3417
3418 Fixes #1902
3419 Closes #1903
3420
3421- tests: make the imap server not verify user+password
3422
3423 ... as the test cases themselves do that and it makes it easier to add
3424 crazy test cases.
3425
3426 Test 800 updated to use user name + password that need quoting.
3427
3428 Test 856 updated to trigger an auth fail differently.
3429
3430 Ref: #1902
3431
3432- vtls: provide curl_global_sslset() even in non-SSL builds
3433
3434 ... it just returns error:
3435
3436 Bug: https://github.com/curl/curl/commit/1328f69d53f2f2e937696ea954c480412b018451#commitcomment-24470367
3437 Reported-by: Marcel Raad
3438
3439 Closes #1906
3440
3441Patrick Monnerat (22 Sep 2017)
3442- form/mime: field names are not allowed to contain zero-valued bytes.
3443
3444 Also suppress length argument of curl_mime_name() (names are always
3445 zero-terminated).
3446
3447Daniel Stenberg (21 Sep 2017)
3448- [Dirk Feytons brought this change]
3449
3450 openssl: only verify RSA private key if supported
3451
3452 In some cases the RSA key does not support verifying it because it's
3453 located on a smart card, an engine wants to hide it, ...
3454 Check the flags on the key before trying to verify it.
3455 OpenSSL does the same thing internally; see ssl/ssl_rsa.c
3456
3457 Closes #1904
3458
3459Marcel Raad (21 Sep 2017)
3460- examples/post-callback: use long for CURLOPT_POSTFIELDSIZE
3461
3462 Otherwise, typecheck-gcc.h warns on MinGW-w64.
3463
3464Patrick Monnerat (20 Sep 2017)
3465- mime: rephrase the multipart output state machine (#1898) ...
3466
3467 ... in hope coverity will like it much.
3468
3469- mime: fix an explicit null dereference (#1899)
3470
3471Daniel Stenberg (20 Sep 2017)
3472- curl: check fseek() return code and bail on error
3473
3474 Detected by coverity. CID 1418137.
3475
3476- smtp: fix memory leak in OOM
3477
3478 Regression since ce0881edee
3479
3480 Coverity CID 1418139 and CID 1418136 found it, but it was also seen in
3481 torture testing.
3482
3483- RELEASE-NOTES: synced with 5fe85587c
3484
Elliott Hughes0128fe42018-02-27 14:57:55 -08003485- [Pavel Pavlov brought this change]
Alex Deymo486467e2017-12-19 19:04:07 +01003486
3487 cookies: use lock when using CURLINFO_COOKIELIST
3488
3489 Closes #1896
3490
3491- [Max Dymond brought this change]
3492
3493 ossfuzz: changes before merging the generated corpora
3494
3495 Before merging in the oss-fuzz corpora from Google, there are some changes
3496 to the fuzzer.
3497 - Add a read corpus script, to display corpus files nicely.
3498 - Change the behaviour of the fuzzer so that TLV parse failures all now
3499 go down the same execution paths, which should reduce the size of the
3500 corpora.
3501 - Make unknown TLVs a failure to parse, which should decrease the size
3502 of the corpora as well.
3503
3504 Closes #1881
3505
3506- mime:escape_string minor clarification change
3507
3508 ... as it also removes a warning with old gcc versions.
3509
3510 Bug: https://curl.haxx.se/mail/lib-2017-09/0049.html
3511 Reported-by: Ben Greear
3512
3513- [Max Dymond brought this change]
3514
3515 ossfuzz: don't write out to stdout
3516
3517 Don't make the fuzzer write out to stdout - instead write some of the
3518 contents to a memory block so we exercise the data output code but
3519 quietly.
3520
3521 Closes #1885
3522
3523- cookies: reject oversized cookies
3524
3525 ... instead of truncating them.
3526
3527 There's no fixed limit for acceptable cookie names in RFC 6265, but the
3528 entire cookie is said to be less than 4096 bytes (section 6.1). This is
3529 also what browsers seem to implement.
3530
3531 We now allow max 5000 bytes cookie header. Max 4095 bytes length per
3532 cookie name and value. Name + value together may not exceed 4096 bytes.
3533
3534 Added test 1151 to verify
3535
3536 Bug: https://curl.haxx.se/mail/lib-2017-09/0062.html
3537 Reported-by: Kevin Smith
3538
3539 Closes #1894
3540
3541- travis: on mac, don't install openssl or libidn
3542
3543 - openssl is already installed and causes warnings when trying to
3544 install again
3545
3546 - libidn isn't used these days, and homebrew doesn't seem to have a
3547 libidn2 package to replace with easily
3548
3549 Closes #1895
3550
3551- curl: make str2udouble not return values on error
3552
3553 ... previously it would store a return value even when it returned
3554 error, which could make the value get used anyway!
3555
3556 Reported-by: Brian Carpenter
3557 Closes #1893
3558
3559Jay Satiro (18 Sep 2017)
3560- socks: fix incorrect port number in SOCKS4 error message
3561
3562 Prior to this change it appears the SOCKS5 port parsing was erroneously
3563 used for the SOCKS4 error message, and as a result an incorrect port
3564 would be shown in the error message.
3565
3566 Bug: https://github.com/curl/curl/issues/1892
3567 Reported-by: Jackarain@users.noreply.github.com
3568
3569- [Marc Aldorasi brought this change]
3570
3571 schannel: Support partial send for when data is too large
3572
3573 Schannel can only encrypt a certain amount of data at once. Instead of
3574 failing when too much data is to be sent at once, send as much data as
3575 we can and let the caller send the remaining data by calling send again.
3576
3577 Bug: https://curl.haxx.se/mail/lib-2014-07/0033.html
3578
3579 Closes https://github.com/curl/curl/pull/1890
3580
3581- [David Benjamin brought this change]
3582
3583 openssl: add missing includes
3584
3585 lib/vtls/openssl.c uses OpenSSL APIs from BUF_MEM and BIO APIs. Include
3586 their headers directly rather than relying on other OpenSSL headers
3587 including things.
3588
3589 Closes https://github.com/curl/curl/pull/1891
3590
3591Daniel Stenberg (15 Sep 2017)
3592- conversions: fix several compiler warnings
3593
3594- server/getpart: provide dummy function to build conversion enabled
3595
3596- non-ascii: use iconv() with 'char **' argument
3597
3598 Bug: https://curl.haxx.se/mail/lib-2017-09/0031.html
3599
3600- escape.c: error: pointer targets differ in signedness
3601
3602- docs: clarify the CURLOPT_INTERLEAVE* options behavior
3603
3604- [Max Dymond brought this change]
3605
3606 rtsp: Segfault in rtsp.c when using WRITEDATA
3607
3608 If the INTERLEAVEFUNCTION is defined, then use that plus the
3609 INTERLEAVEDATA information when writing RTP. Otherwise, use
3610 WRITEFUNCTION and WRITEDATA.
3611
3612 Fixes #1880
3613 Closes #1884
3614
3615Marcel Raad (15 Sep 2017)
3616- [Isaac Boukris brought this change]
3617
3618 tests: enable gssapi in travis-ci linux build
3619
3620 Closes https://github.com/curl/curl/pull/1687
3621
3622- [Isaac Boukris brought this change]
3623
3624 tests: add initial gssapi test using stub implementation
3625
3626 The stub implementation is pre-loaded using LD_PRELOAD
3627 and emulates common gssapi uses (only builds if curl is
3628 initially built with gssapi support).
3629
3630 The initial tests are currently disabled for debug builds
3631 as LD_PRELOAD is not used then.
3632
3633 Ref: https://github.com/curl/curl/pull/1687
3634
3635Daniel Stenberg (15 Sep 2017)
3636- test1150: verify same host fetch using different ports over proxy
3637
3638 Closes #1889
3639
3640- URL: on connection re-use, still pick the new remote port
3641
3642 ... as when a proxy connection is being re-used, it can still get a
3643 different remote port.
3644
3645 Fixes #1887
3646 Reported-by: Oli Kingshott
3647
3648- RELEASE-NOTES: synced with 87501e57f
3649
3650- code style: remove wrong uses of multiple spaces
3651
3652 Closes #1878
3653
3654- checksrc: detect and warn for multiple spaces
3655
3656- code style: use space after semicolon
3657
3658- checksrc: verify space after semicolons
3659
3660- code style: use spaces around pluses
3661
3662- checksrc: detect and warn for lack of spaces next to plus signs
3663
3664- code style: use spaces around equals signs
3665
3666- checksrc: verify spaces around equals signs
3667
3668 ... as the code style mandates.
3669
3670- Curl_checkheaders: make it available for IMAP and SMTP too
3671
3672 ... not only HTTP uses this now.
3673
3674 Closes #1875
3675
3676- travis: add build without HTTP/SMTP/IMAP
3677
3678Jay Satiro (10 Sep 2017)
3679- mbedtls: enable CA path processing
3680
3681 CA path processing was implemented when mbedtls.c was added to libcurl
3682 in fe7590f, but it was never enabled.
3683
3684 Bug: https://github.com/curl/curl/issues/1877
3685 Reported-by: SBKarr@users.noreply.github.com
3686
3687Daniel Stenberg (8 Sep 2017)
3688- rtsp: do not call fwrite() with NULL pointer FILE *
3689
3690 If the default write callback is used and no destination has been set, a
3691 NULL pointer would be passed to fwrite()'s 4th argument.
3692
3693 OSS-fuzz bug https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3327
3694 (not publicly open yet)
3695
3696 Detected by OSS-fuzz
3697 Closes #1874
3698
3699- configure: use -Wno-varargs on clang 3.9[.X] debug builds
3700
3701 ... to avoid a clang bug
3702
3703- [Max Dymond brought this change]
3704
3705 ossfuzz: add some more handled CURL options
3706
3707 Add support for HEADER, COOKIE, RANGE, CUSTOMREQUEST, MAIL_RECIPIENT,
3708 MAIL_FROM and uploading data.
3709
3710- configure: check for C++ compiler after C, to make it non-fatal
3711
3712 The tests for object file/executable file extensions are presumably only
3713 done for the first of these macros in the configure file.
3714
3715 Bug: https://github.com/curl/curl/pull/1851#issuecomment-327597515
3716 Reported-by: Marcel Raad
3717 Closes #1873
3718
3719Patrick Monnerat (7 Sep 2017)
3720- form API: add new test 650.
3721
3722 Now that the form API is deprecated and not used anymore in curl tool,
3723 a lot of its features left untested. Test 650 attempts to check all these
3724 features not tested elsewhere.
3725
3726Jay Satiro (7 Sep 2017)
3727- configure: fix curl_off_t check's include order
3728
3729 - Prepend srcdir include path instead of append.
3730
3731 Prior to this change it was possible that during the check for the size
3732 of curl_off_t the include path of a user's already installed curl could
3733 come before the include path of the to-be-built curl, resulting in the
3734 system.h of the former being incorrectly included for that check.
3735
3736 Closes https://github.com/curl/curl/pull/1870
3737
3738Daniel Stenberg (7 Sep 2017)
3739- [Jakub Zakrzewski brought this change]
3740
3741 KNOWN_BUGS: Remove CMake symbol hiding issue
3742
3743 It has already been fixed in 6140dfc
3744
3745- http-proxy: when not doing CONNECT, that phase is done immediately
3746
3747 `conn->connect_state` is NULL when doing a regular non-CONNECT request
3748 over the proxy and should therefor be considered complete at once.
3749
3750 Fixes #1853
3751 Closes #1862
3752 Reported-by: Lawrence Wagerfield
3753
3754- [Johannes Schindelin brought this change]
3755
3756 OpenSSL: fix yet another mistake while encapsulating SSL backend data
3757
3758 Another mistake in my manual fixups of the largely mechanical
3759 search-and-replace ("connssl->" -> "BACKEND->"), just like the previous
3760 commit concerning HTTPS proxies (and hence not caught during my
3761 earlier testing).
3762
3763 Fixes #1855
3764 Closes #1871
3765
3766 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
3767
3768- [Johannes Schindelin brought this change]
3769
3770 OpenSSL: fix erroneous SSL backend encapsulation
3771
3772 In d65e6cc4f (vtls: prepare the SSL backends for encapsulated private
3773 data, 2017-06-21), this developer prepared for a separation of the
3774 private data of the SSL backends from the general connection data.
3775
3776 This conversion was partially automated (search-and-replace) and
3777 partially manual (e.g. proxy_ssl's backend data).
3778
3779 Sadly, there was a crucial error in the manual part, where the wrong
3780 handle was used: rather than connecting ssl[sockindex]' BIO to the
3781 proxy_ssl[sockindex]', we reconnected proxy_ssl[sockindex]. The reason
3782 was an incorrect location to paste "BACKEND->"... d'oh.
3783
3784 Reported by Jay Satiro in https://github.com/curl/curl/issues/1855.
3785
3786 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
3787
3788- [Jay Satiro brought this change]
3789
3790 vtls: fix memory corruption
3791
3792 Ever since 70f1db321 (vtls: encapsulate SSL backend-specific data,
3793 2017-07-28), the code handling HTTPS proxies was broken because the
3794 pointer to the SSL backend data was not swapped between
3795 conn->ssl[sockindex] and conn->proxy_ssl[sockindex] as intended, but
3796 instead set to NULL (causing segmentation faults).
3797
3798 [jes: provided the commit message, tested and verified the patch]
3799
3800 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
3801
3802- vtls: switch to CURL_SHA256_DIGEST_LENGTH define
3803
3804 ... instead of the prefix-less version since WolfSSL 3.12 now uses an
3805 enum with that name that causes build failures for us.
3806
3807 Fixes #1865
3808 Closes #1867
3809 Reported-by: Gisle Vanem
3810
3811- travis: add c-ares enabled builds linux + osx
3812
3813 Closes #1868
3814
3815- HISTORY: added some recent items
3816
3817Jay Satiro (6 Sep 2017)
3818- SSL: fix unused parameter warnings
3819
3820Patrick Monnerat (6 Sep 2017)
3821- mime: drop internal FILE * support.
3822
3823 - The part kind MIMEKIND_FILE and associated code are suppressed.
3824 - Seek data origin offset not used anymore: suppressed.
3825 - MIMEKIND_NAMEDFILE renamed MIMEKIND_FILE; associated fields/functions
3826 renamed accordingly.
3827 - Curl_getformdata() processes stdin via a callback.
3828
3829Daniel Stenberg (6 Sep 2017)
3830- configure: remove --enable-soname-bump and SONAME_BUMP
3831
3832 Back in 2008, (and commit 3f3d6ebe665f3) we changed the logic in how we
3833 determine the native type for `curl_off_t`. To really make sure we
3834 didn't break ABI without bumping SONAME, we introduced logic that
3835 attempted to detect that it would use a different size and thus not be
3836 compatible. We also provided a manual switch that allowed users to tell
3837 configure to bump SONAME by force.
3838
3839 Today, we know of no one who ever got a SONAME bump auto-detected and we
3840 don't know of anyone who's using the manual bump feature. The auto-
3841 detection is also no longer working since we introduced defining
3842 curl_off_t in system.h (7.55.0).
3843
3844 Finally, this bumping logic is not present in the cmake build.
3845
3846 Closes #1861
3847
3848Jay Satiro (6 Sep 2017)
3849- [Gisle Vanem brought this change]
3850
3851 vtls: select ssl backend case-insensitive (follow-up)
3852
3853 - Do a case-insensitive comparison of CURL_SSL_BACKEND env as well.
3854
3855 - Change Curl_strcasecompare calls to strcasecompare
3856 (maps to the former but shorter).
3857
3858 Follow-up to c290b8f.
3859
3860 Bug: https://github.com/curl/curl/commit/c290b8f#commitcomment-24094313
3861
3862 Co-authored-by: Jay Satiro
3863
3864- openssl: Integrate Peter Wu's SSLKEYLOGFILE implementation
3865
3866 This is an adaptation of 2 of Peter Wu's SSLKEYLOGFILE implementations.
3867
3868 The first one, written for old OpenSSL versions:
3869 https://git.lekensteyn.nl/peter/wireshark-notes/tree/src/sslkeylog.c
3870
3871 The second one, written for BoringSSL and new OpenSSL versions:
3872 https://github.com/curl/curl/pull/1346
3873
3874 Note the first one is GPL licensed but the author gave permission to
3875 waive that license for libcurl.
3876
3877 As of right now this feature is disabled by default, and does not have
3878 a configure option to enable it. To enable this feature define
3879 ENABLE_SSLKEYLOGFILE when building libcurl and set environment
3880 variable SSLKEYLOGFILE to a pathname that will receive the keys.
3881
3882 And in Wireshark change your preferences to point to that key file:
3883 Edit > Preferences > Protocols > SSL > Master-Secret
3884
3885 Co-authored-by: Peter Wu
3886
3887 Ref: https://github.com/curl/curl/pull/1030
3888 Ref: https://github.com/curl/curl/pull/1346
3889
3890 Closes https://github.com/curl/curl/pull/1866
3891
3892Patrick Monnerat (5 Sep 2017)
3893- mime: fix a trivial warning.
3894
3895- mime: replace 'struct Curl_mimepart' by 'curl_mimepart' in encoder code.
3896
3897 mime_state is now a typedef.
3898
3899- mime: implement encoders.
3900
3901 curl_mime_encoder() is operational and documented.
3902 curl tool -F option is extended with ";encoder=".
3903 curl tool --libcurl option generates calls to curl_mime_encoder().
3904 New encoder tests 648 & 649.
3905 Test 1404 extended with an encoder specification.
3906
3907- runtests.pl: support attribute "nonewline" in part verify/upload.
3908
3909- [Daniel Stenberg brought this change]
3910
3911 fixup data/test1135
3912
3913- [Daniel Stenberg brought this change]
3914
3915 mime: unified to use the typedef'd mime structs everywhere
3916
3917 ... and slightly edited to follow our code style better.
3918
3919- [Daniel Stenberg brought this change]
3920
3921 curl.h: use lower case curl_mime* as for all public symbols
3922
3923- [Daniel Stenberg brought this change]
3924
3925 docs/curl_mime_*.3: use correct variable types in examples
3926
3927Kamil Dudka (5 Sep 2017)
3928- openssl: use OpenSSL's default ciphers by default
3929
3930 Up2date versions of OpenSSL maintain the default reasonably secure
3931 without breaking compatibility, so it is better not to override the
3932 default by curl. Suggested at https://bugzilla.redhat.com/1483972
3933
3934 Closes #1846
3935
Elliott Hughescac39802018-04-27 16:19:43 -07003936Viktor Szakats (5 Sep 2017)
Alex Deymo486467e2017-12-19 19:04:07 +01003937- examples/mime: minor example code fixes
3938
3939Daniel Stenberg (5 Sep 2017)
3940- docs/curl_mime_*.3: added examples
3941
3942- configure: add MultiSSL to FEATURES when enabled
3943
3944 ...for curl-config and its corresponding test 1014
3945
3946- http-proxy: treat all 2xx as CONNECT success
3947
3948 Added test 1904 to verify.
3949
3950 Reported-by: Lawrence Wagerfield
3951 Fixes #1859
3952 Closes #1860
3953
3954- MAIL-ETIQUETTE: added "1.9 Your emails are public"
3955
3956- curl.h: fix "unused checksrc ignore", remove dangling reference
3957
3958 ... to a README file that doesn't exist anymore
3959
Elliott Hughescac39802018-04-27 16:19:43 -07003960Viktor Szakats (4 Sep 2017)
Alex Deymo486467e2017-12-19 19:04:07 +01003961- docs: Update to secure URL versions
3962
3963- mime: use CURL_ZERO_TERMINATED in examples
3964
3965 and some minor whitespace fixes
3966
3967Daniel Stenberg (4 Sep 2017)
3968- schannel: return CURLE_SSL_CACERT on failed verification
3969
3970 ... not *CACERT_BADFILE as it isn't really because of a bad file.
3971
3972 Bug: https://curl.haxx.se/mail/lib-2017-09/0002.html
3973 Closes #1858
3974
3975- test1135: fixed after bd8070085f9
3976
3977- examples/post-callback: stop returning one byte at a time
3978
3979 ... since people copy and paste code from this example and thus they get
3980 an inefficient POST operation without a good reason and sometimes
3981 without understanding why.
3982
3983 Instead this now returns as much data as possible.
3984
3985- RELEASE-NOTES: fixed the function counter script
3986
3987- curl.h: make the curl_strequal() protos use the same style
3988
3989 ... as the other functions. Makes it easier to machine-parse!
3990
3991- docs: curl_mime_*.3 man page formatting edits
3992
3993- RELEASE-NOTES: synced with 1ab9e9b50
3994
3995Patrick Monnerat (4 Sep 2017)
3996- lib: bump version info (soname). Adapt and reenable test 1135.
3997
3998Daniel Stenberg (3 Sep 2017)
3999- headers: move the global_sslset() proto from multi.h to curl.h
4000
4001 As it was added to multi.h simply to not break test 1135, which now has
4002 been disabled due to the mime API addition anyway and su we can now move
4003 the sslset stuff to where the other curl_global_* prototypes are.
4004
4005Patrick Monnerat (3 Sep 2017)
4006- mime: fix signed/unsigned conversions.
4007
4008 Use and generate CURL_ZERO_TERMINATED in curl tool and tests.
4009
4010Jay Satiro (3 Sep 2017)
4011- tool_formparse: fix some trivial warnings
4012
4013Patrick Monnerat (3 Sep 2017)
4014- mime: use size_t instead of ssize_t in public API interface.
4015
4016 To support telling a string is nul-terminated, symbol CURL_ZERO_TERMINATED
4017 has been introduced.
4018
4019 Documentation updated accordingly.
4020
4021 symbols in versions updated. Added form API symbols deprecation info.
4022
4023- mime: remove support "-" stdin pseudo-file name in curl_mime_filedata().
4024
4025 This feature is badly supported in Windows: as a replacement, a caller has
4026 to use curl_mime_data_cb() with fread, fseek and possibly fclose
4027 callbacks to process opened files.
4028
4029 The cli tool and documentation are updated accordingly.
4030
4031 The feature is however kept internally for form API compatibility, with
4032 the known caveats it always had.
4033
4034 As a side effect, stdin size is not determined by the cli tool even if
4035 possible and this results in a chunked transfer encoding. Test 173 is
4036 updated accordingly.
4037
4038- mime: fix some implicit curl_off_t --> size_t conversion warnings.
4039
4040- mime: tests and examples.
4041
4042 Additional mime-specific tests.
4043 Existing tests updated to reflect small differences (Expect: 100-continue,
4044 data size change due to empty lines, etc).
4045 Option -F headers= keyword added to tests.
4046 test1135 disabled until the entry point order change is resolved.
4047 New example smtp-mime.
4048 Examples postit2 and multi-post converted from form API to mime API.
4049
4050- mime: use in curl cli tool instead of form API.
4051
4052 Extended -F option syntax to support multipart mail messages.
4053 -F keyword headers= added to include custom headers in parts.
4054 Documentation upgraded.
4055
4056- mime: new MIME API.
4057
4058 Available in HTTP, SMTP and IMAP.
4059 Deprecates the FORM API.
4060 See CURLOPT_MIMEPOST.
4061 Lib code and associated documentation.
4062
4063- test564: Add a warning comment about shell profile output.
4064
4065 Shell profile output makes the SSH server failing and this problem reason
4066 is not easy to find when no hint is given.
4067
4068- checksrc: disable SPACEBEFOREPAREN for case statement.
4069
4070 The case keyword may be followed by a constant expression and thus should
4071 allow it to start with an open parenthesis.
4072
4073- runtests.pl: allow <file[1-4]> tags in client section.
4074
4075 This enables tests to create more than one file on the client side.
4076
4077- runtests.pl: Apply strippart to upload too.
4078
4079 This will allow substitution of boundaries in mail messages.
4080
4081- Curl_base64_encode: always call with a real data handle.
4082
4083 Some calls in different modules were setting the data handle to NULL, causing
4084 segmentation faults when using builds that enable character code conversions.
4085
4086- non-ascii: allow conversion functions to be called with a NULL data handle.
4087
4088- http: fix a memory leakage in checkrtspprefix().
4089
4090Daniel Stenberg (2 Sep 2017)
4091- [Max Dymond brought this change]
4092
4093 ossfuzz: Move to C++ for curl_fuzzer.
4094
4095 Automake gets confused if you want to use C++ static libraries with C
4096 code - basically we need to involve the clang++ linker. The easiest way
4097 of achieving this is to rename the C code as C++ code. This gets us a
4098 bit further along the path and ought to be compatible with Google's
4099 version of clang.
4100
4101- curl_global_sslset: select backend by name case insensitively
4102
4103 Closes #1849
4104
4105- [Max Dymond brought this change]
4106
4107 ossfuzz: additional seed corpora
4108
4109 Create simple seed corpora for:
4110 - FTP
4111 - telnet
4112 - dict
4113 - tftp
4114 - imap
4115 - pop3
4116
4117 based off the tests of the same number.
4118
4119 Closes #1842
4120
4121- [Max Dymond brought this change]
4122
4123 ossfuzz: moving towards the ideal integration
4124
4125 - Start with the basic code from the ossfuzz project.
4126 - Rewrite fuzz corpora to be binary files full of Type-Length-Value
4127 data, and write a glue layer in the fuzzing function to convert
4128 corpora into CURL options.
4129 - Have supporting functions to generate corpora from existing tests
4130 - Integrate with Makefile.am
4131
4132- strcase: corrected comment header for Curl_strcasecompare()
4133
4134- unit1301: fix error message on first test
4135
4136- curl_global_sslset.3: show the struct and enum too
4137
4138 ... so that users can actually write code based on the man page alone,
4139 not having to read the header file.
4140
4141Jay Satiro (31 Aug 2017)
4142- darwinssl: handle long strings in TLS certs (follow-up)
4143
4144 - Fix handling certificate subjects that are already UTF-8 encoded.
4145
4146 Follow-up to b3b75d1 from two days ago. Since then a copy would be
4147 skipped if the subject was already UTF-8, possibly resulting in a NULL
4148 deref later on.
4149
4150 Ref: https://github.com/curl/curl/issues/1823
4151 Ref: https://github.com/curl/curl/pull/1831
4152
4153 Closes https://github.com/curl/curl/pull/1836
4154
4155Daniel Stenberg (31 Aug 2017)
4156- cyassl: call it the "WolfSSL" backend
4157
4158 ... instead of cyassl, as this is the current name for it.
4159
4160 Closes #1844
4161
4162- polarssl: fix multissl breakage
4163
4164 Reported-by: Dan Fandrich
4165 Bug: https://curl.haxx.se/mail/lib-2017-08/0121.html
4166 Closes #1843
4167
4168- configure: remove the leading comma from the backends list
4169
4170 ... when darwinssl is used.
4171
4172 Reported-by: Viktor Szakats
4173 Bug: https://github.com/curl/curl/commit/b0989cd3abaff4f9a0717b4875022fa79e33b481#commitcomment-23943493
4174
4175 Closes #1845
4176
4177Kamil Dudka (30 Aug 2017)
4178- examples/sslbackend.c: fix failure of 'make checksrc'
4179
4180 ./sslbackend.c:58:3: warning: else after closing brace on same line (BRACEELSE)
4181 } else if(isdigit(*name)) {
4182 ^
4183 ./sslbackend.c:62:3: warning: else after closing brace on same line (BRACEELSE)
4184 } else
4185 ^
4186
Elliott Hughescac39802018-04-27 16:19:43 -07004187Viktor Szakats (30 Aug 2017)
Alex Deymo486467e2017-12-19 19:04:07 +01004188- makefile.m32: add multissl support
4189
4190 Closes https://github.com/curl/curl/pull/1840
4191
4192Daniel Stenberg (30 Aug 2017)
4193- curl.h: CURLSSLBACKEND_WOLFSSL used wrong value
4194
4195 The CURLSSLBACKEND_WOLFSSL is supposed to be an alias for
4196 CURLSSLBACKEND_CYASSL, but used an erronous value. To reduce the risk
4197 for a similar mistake, define the backend aliases to use the enum values
4198 instead.
4199
4200 Reported-by: Gisle Vanem
4201 Bug: https://curl.haxx.se/mail/lib-2017-08/0120.html
4202
4203- curl_global_sslset.3: clarify
4204
4205 it is a one time *set*, not necessarily a one time use... it can be
4206 called again if the first call failed or just listed the alternatives.
4207
4208 clarify that the available backends are the ones this build supports
4209
4210 plus add some formatting
4211
4212 Reported-by: Rich Gray
4213 Bug: https://curl.haxx.se/mail/lib-2017-08/0119.html
4214
4215- curl/multi.h: remove duplicated closing c++ brace
4216
4217 Regression since 1328f69d53f2f2e93
4218
4219 Fixes #1841
4220 Reported-by: Andrei Karas
4221
4222- RELEASE-NOTES: synced with 8c33c963a
4223
4224- HELP-US.md: spelling
4225
4226- HELP-US.md: "How to get started helping out in the curl project"
4227
4228 Closes #1837
4229
4230Dan Fandrich (29 Aug 2017)
4231- asyn-thread: Fixed cleanup after OOM
4232
4233 destroy_async_data() assumes that if the flag "done" is not set yet, the
4234 thread itself will clean up once the request is complete. But if an
4235 error (generally OOM) occurs before the thread even has a chance to
4236 start, it will never get a chance to clean up and memory will be leaked.
4237 By clearing "done" only just before starting the thread, the correct
4238 cleanup sequence will happen in all cases.
4239
4240Daniel Stenberg (28 Aug 2017)
4241- curl_global_init.3: mention curl_global_sslset(3)
4242
4243Dan Fandrich (28 Aug 2017)
4244- unit1606: Fixed shadowed variable warning
4245
4246- asyn-thread: Improved cleanup after OOM situations
4247
4248- asyn-thread: Set errno to the proper value ENOMEM in OOM situation
4249
4250 This used to be set in some configurations to EAI_MEMORY which is not a
4251 valid value for errno and caused Curl_strerror to fail an assertion.
4252
4253Daniel Stenberg (28 Aug 2017)
4254- [Johannes Schindelin brought this change]
4255
4256 configure: Handle "MultiSSL" specially When versioning symbols
4257
4258 There is a mode in which libcurl is compiled with versioned symbols,
4259 depending on the active SSL backend.
4260
4261 When multiple SSL backends are active, it does not make sense to favor
4262 one over the others, so let's not: introduce a new prefix for the case
4263 where multiple SSL backends are compiled into cURL.
4264
4265 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4266
4267- [Johannes Schindelin brought this change]
4268
4269 configure: allow setting the default SSL backend
4270
4271 Previously, we used as default SSL backend whatever was first in the
4272 `available_backends` array.
4273
4274 However, some users may want to override that default without patching
4275 the source code.
4276
4277 Now they can: with the --with-default-ssl-backend=<backend> option of
4278 the ./configure script.
4279
4280 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4281
4282- [Johannes Schindelin brought this change]
4283
4284 vtls: use Curl_ssl_multi pseudo backend only when needed
4285
4286 When only one SSL backend is configured, it is totally unnecessary to
4287 let multissl_init() configure the backend at runtime, we can select the
4288 correct backend at build time already.
4289
4290 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4291
4292- [Johannes Schindelin brought this change]
4293
4294 version: if built with more than one SSL backend, report all of them
4295
4296 To discern the active one from the inactive ones, put the latter into
4297 parentheses.
4298
4299 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4300
4301- [Johannes Schindelin brought this change]
4302
4303 version: add the CURL_VERSION_MULTI_SSL feature flag
4304
4305 This new feature flag reports When cURL was built with multiple SSL
4306 backends.
4307
4308 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4309
4310- [Johannes Schindelin brought this change]
4311
4312 metalink: allow compiling with multiple SSL backends
4313
4314 Previously, the code assumed that at most one of the SSL backends would
4315 be compiled in, emulating OpenSSL's functions if the configured backend
4316 was not OpenSSL itself.
4317
4318 However, now we allow building with multiple SSL backends and choosing
4319 one at runtime. Therefore, metalink needs to be adjusted to handle this
4320 scenario, too.
4321
4322 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4323
4324- [Johannes Schindelin brought this change]
4325
4326 docs/examples: demonstrate how to select SSL backends
4327
4328 The newly-introduced curl_global_sslset() function deserves to be
4329 show-cased.
4330
4331 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4332
4333- [Johannes Schindelin brought this change]
4334
4335 Add a man page for curl_global_sslset()
4336
4337 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4338
4339- [Johannes Schindelin brought this change]
4340
4341 vtls: introduce curl_global_sslset()
4342
4343 Let's add a compile time safe API to select an SSL backend. This
4344 function needs to be called *before* curl_global_init(), and can be
4345 called only once.
4346
4347 Side note: we do not explicitly test that it is called before
4348 curl_global_init(), but we do verify that it is not called multiple times
4349 (even implicitly).
4350
4351 If SSL is used before the function was called, it will use whatever the
4352 CURL_SSL_BACKEND environment variable says (or default to the first
4353 available SSL backend), and if a subsequent call to
4354 curl_global_sslset() disagrees with the previous choice, it will fail
4355 with CURLSSLSET_TOO_LATE.
4356
4357 The function also accepts an "avail" parameter to point to a (read-only)
4358 NULL-terminated list of available backends. This comes in real handy if
4359 an application wants to let the user choose between whatever SSL backends
4360 the currently available libcurl has to offer: simply call
4361
4362 curl_global_sslset(-1, NULL, &avail);
4363
4364 which will return CURLSSLSET_UNKNOWN_BACKEND and populate the avail
4365 variable to point to the relevant information to present to the user.
4366
4367 Just like with the HTTP/2 push functions, we have to add the function
4368 declaration of curl_global_sslset() function to the header file
4369 *multi.h* because VMS and OS/400 require a stable order of functions
4370 declared in include/curl/*.h (where the header files are sorted
4371 alphabetically). This looks a bit funny, but it cannot be helped.
4372
4373 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4374
4375- [Johannes Schindelin brought this change]
4376
4377 vtls: refactor out essential information about the SSL backends
4378
4379 There is information about the compiled-in SSL backends that is really
4380 no concern of any code other than the SSL backend itself, such as which
4381 function (if any) implements SHA-256 summing.
4382
4383 And there is information that is really interesting to the user, such as
4384 the name, or the curl_sslbackend value.
4385
4386 Let's factor out the latter into a publicly visible struct. This
4387 information will be used in the upcoming API to set the SSL backend
4388 globally.
4389
4390 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4391
4392- [Johannes Schindelin brought this change]
4393
4394 vtls: allow selecting which SSL backend to use at runtime
4395
4396 When building software for the masses, it is sometimes not possible to
4397 decide for all users which SSL backend is appropriate.
4398
4399 Git for Windows, for example, uses cURL to perform clones, fetches and
4400 pushes via HTTPS, and some users strongly prefer OpenSSL, while other
4401 users really need to use Secure Channel because it offers
4402 enterprise-ready tools to manage credentials via Windows' Credential
4403 Store.
4404
4405 The current Git for Windows versions use the ugly work-around of
4406 building libcurl once with OpenSSL support and once with Secure Channel
4407 support, and switching out the binaries in the installer depending on
4408 the user's choice.
4409
4410 Needless to say, this is a super ugly workaround that actually only
4411 works in some cases: Git for Windows also comes in a portable form, and
4412 in a form intended for third-party applications requiring Git
4413 functionality, in which cases this "swap out libcurl-4.dll" simply is
4414 not an option.
4415
4416 Therefore, the Git for Windows project has a vested interest in teaching
4417 cURL to make the SSL backend a *runtime* option.
4418
4419 This patch makes that possible.
4420
4421 By running ./configure with multiple --with-<backend> options, cURL will
4422 be built with multiple backends.
4423
4424 For the moment, the backend can be configured using the environment
4425 variable CURL_SSL_BACKEND (valid values are e.g. "openssl" and
4426 "schannel").
4427
4428 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4429
4430- [Johannes Schindelin brought this change]
4431
4432 vtls: fold the backend ID into the Curl_ssl structure
4433
4434 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4435
4436- [Johannes Schindelin brought this change]
4437
4438 curl_ntlm_core: don't complain but #include OpenSSL header if needed
4439
4440 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4441
4442- [Johannes Schindelin brought this change]
4443
4444 vtls: encapsulate SSL backend-specific data
4445
4446 So far, all of the SSL backends' private data has been declared as
4447 part of the ssl_connect_data struct, in one big #if .. #elif .. #endif
4448 block.
4449
4450 This can only work as long as the SSL backend is a compile-time option,
4451 something we want to change in the next commits.
4452
4453 Therefore, let's encapsulate the exact data needed by each SSL backend
4454 into a private struct, and let's avoid bleeding any SSL backend-specific
4455 information into urldata.h. This is also necessary to allow multiple SSL
4456 backends to be compiled in at the same time, as e.g. OpenSSL's and
4457 CyaSSL's headers cannot be included in the same .c file.
4458
4459 To avoid too many malloc() calls, we simply append the private structs
4460 to the connectdata struct in allocate_conn().
4461
4462 This requires us to take extra care of alignment issues: struct fields
4463 often need to be aligned on certain boundaries e.g. 32-bit values need to
4464 be stored at addresses that divide evenly by 4 (= 32 bit / 8
4465 bit-per-byte).
4466
4467 We do that by assuming that no SSL backend's private data contains any
4468 fields that need to be aligned on boundaries larger than `long long`
4469 (typically 64-bit) would need. Under this assumption, we simply add a
4470 dummy field of type `long long` to the `struct connectdata` struct. This
4471 field will never be accessed but acts as a placeholder for the four
4472 instances of ssl_backend_data instead. the size of each ssl_backend_data
4473 struct is stored in the SSL backend-specific metadata, to allow
4474 allocate_conn() to know how much extra space to allocate, and how to
4475 initialize the ssl[sockindex]->backend and proxy_ssl[sockindex]->backend
4476 pointers.
4477
4478 This would appear to be a little complicated at first, but is really
4479 necessary to encapsulate the private data of each SSL backend correctly.
4480 And we need to encapsulate thusly if we ever want to allow selecting
4481 CyaSSL and OpenSSL at runtime, as their headers cannot be included within
4482 the same .c file (there are just too many conflicting definitions and
4483 declarations for that).
4484
4485 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4486
4487- [Johannes Schindelin brought this change]
4488
4489 vtls: prepare the SSL backends for encapsulated private data
4490
4491 At the moment, cURL's SSL backend needs to be configured at build time.
4492 As such, it is totally okay for them to hard-code their backend-specific
4493 data in the ssl_connect_data struct.
4494
4495 In preparation for making the SSL backend a runtime option, let's make
4496 the access of said private data a bit more abstract so that it can be
4497 adjusted later in an easy manner.
4498
4499 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4500
4501- [Johannes Schindelin brought this change]
4502
4503 urldata.h: move SSPI-specific #include to correct location
4504
4505 In 86b889485 (sasl_gssapi: Added GSS-API based Kerberos V5 variables,
4506 2014-12-03), an SSPI-specific field was added to the kerberos5data
4507 struct without moving the #include "curl_sspi.h" later in the same file.
4508
4509 This broke the build when SSPI was enabled, unless Secure Channel was
4510 used as SSL backend, because it just so happens that Secure Channel also
4511 requires "curl_sspi.h" to be #included.
4512
4513 In f4739f639 (urldata: include curl_sspi.h when Windows SSPI is enabled,
4514 2017-02-21), this bug was fixed incorrectly: Instead of moving the
4515 appropriate conditional #include, the Secure Channel-conditional part
4516 was now also SSPI-conditional.
4517
4518 Fix this problem by moving the correct #include instead.
4519
4520 This is also required for an upcoming patch that moves all the Secure
4521 Channel-specific stuff out of urldata.h and encapsulates it properly in
4522 vtls/schannel.c instead.
4523
4524 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4525
4526- [Johannes Schindelin brought this change]
4527
4528 urldata.h: remove support for obsolete PolarSSL version
4529
4530 Since 5017d5ada (polarssl: now require 1.3.0+, 2014-03-17), we require
4531 a newer PolarSSL version. No need to keep code trying to support any
4532 older version.
4533
4534 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4535
4536- [Johannes Schindelin brought this change]
4537
4538 getinfo: access SSL internals via Curl_ssl
4539
4540 In the ongoing endeavor to abstract out all SSL backend-specific
4541 functionality, this is the next step: Instead of hard-coding how the
4542 different SSL backends access their internal data in getinfo.c, let's
4543 implement backend-specific functions to do that task.
4544
4545 This will also allow for switching SSL backends as a runtime option.
4546
4547 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4548
4549- [Johannes Schindelin brought this change]
4550
4551 vtls: move SSL backends' private constants out of their header files
4552
4553 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4554
4555- [Johannes Schindelin brought this change]
4556
4557 axtls: use Curl_none_* versions of init() and cleanup()
4558
4559 There are convenient no-op versions of the init/cleanup functions now,
4560 no need to define private ones for axTLS.
4561
4562 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4563
4564- [Johannes Schindelin brought this change]
4565
4566 vtls: remove obsolete declarations of SSL backend functionality
4567
4568 These functions are all available via the Curl_ssl struct now, no need
4569 to declare them separately anymore.
4570
4571 As the global declarations are removed, the corresponding function
4572 definitions are marked as file-local. The only two exceptions here are
4573 Curl_mbedtls_shutdown() and Curl_polarssl_shutdown(): only the
4574 declarations were removed, there are no function definitions to mark
4575 file-local.
4576
4577 Please note that Curl_nss_force_init() is *still* declared globally, as
4578 the only SSL backend-specific function, because it was introduced
4579 specifically for the use case where cURL was compiled with
4580 `--without-ssl --with-nss`. For details, see f3b77e561 (http_ntlm: add
4581 support for NSS, 2010-06-27).
4582
4583 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4584
4585- [Johannes Schindelin brought this change]
4586
4587 schannel: reorder functions topologically
4588
4589 The _shutdown() function calls the _session_free() function; While this
4590 is not a problem now (because schannel.h declares both functions), a
4591 patch looming in the immediate future with make all of these functions
4592 file-local.
4593
4594 So let's just move the _session_free() function's definition before it
4595 is called.
4596
4597 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4598
4599- [Johannes Schindelin brought this change]
4600
4601 axtls: reorder functions topologically
4602
4603 The connect_finish() function (like many other functions after it) calls
4604 the Curl_axtls_close() function; While this is not a problem now
4605 (because axtls.h declares the latter function), a patch looming in the
4606 immediate future with make all of these functions file-local.
4607
4608 So let's just move the Curl_axtls_close() function's definition before
4609 it is called.
4610
4611 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4612
4613- [Johannes Schindelin brought this change]
4614
4615 vtls: move the SUPPORT_HTTPS_PROXY flag into the Curl_ssl struct
4616
4617 That will allow us to choose the SSL backend at runtime.
4618
4619 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4620
4621- [Johannes Schindelin brought this change]
4622
4623 vtls: convert the have_curlssl_* constants to runtime flags
4624
4625 The entire idea of introducing the Curl_ssl struct to describe SSL
4626 backends is to prepare for choosing the SSL backend at runtime.
4627
4628 To that end, convert all the #ifdef have_curlssl_* style conditionals
4629 to use bit flags instead.
4630
4631 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4632
4633- [Johannes Schindelin brought this change]
4634
4635 vtls: move sha256sum into the Curl_ssl struct
4636
4637 The SHA-256 checksumming is also an SSL backend-specific function.
4638 Let's include it in the struct declaring the functionality of SSL
4639 backends.
4640
4641 In contrast to MD5, there is no fall-back code. To indicate this, the
4642 respective entries are NULL for those backends that offer no support for
4643 SHA-256 checksumming.
4644
4645 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4646
4647- [Johannes Schindelin brought this change]
4648
4649 vtls: move md5sum into the Curl_ssl struct
4650
4651 The MD5 summing is also an SSL backend-specific function. So let's
4652 include it, offering the previous fall-back code as a separate function
4653 now: Curl_none_md5sum(). To allow for that, the signature had to be
4654 changed so that an error could be returned from the implementation
4655 (Curl_none_md5sum() can run out of memory).
4656
4657 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4658
4659- [Johannes Schindelin brought this change]
4660
4661 vtls: use the Curl_ssl struct to access all SSL backends' functionality
4662
4663 This is the first step to unify the SSL backend handling. Now all the
4664 SSL backend-specific functionality is accessed via a global instance of
4665 the Curl_ssl struct.
4666
4667 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4668
4669- [Johannes Schindelin brought this change]
4670
4671 vtls: declare Curl_ssl structs for every SSL backend
4672
4673 The idea of introducing the Curl_ssl struct was to unify how the SSL
4674 backends are declared and called. To this end, we now provide an
4675 instance of the Curl_ssl struct for each and every SSL backend.
4676
4677 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4678
4679- [Johannes Schindelin brought this change]
4680
4681 vtls: introduce a new struct for SSL backends
4682
4683 This new struct is similar in nature to Curl_handler: it will define the
4684 functions and capabilities of all the SSL backends (where Curl_handler
4685 defines the functions and capabilities of protocol handlers).
4686
4687 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4688
4689- [Johannes Schindelin brought this change]
4690
4691 vtls: make sure every _sha256sum()'s first arg is const
4692
4693 This patch makes the signature of the _sha256sum() functions consistent
4694 among the SSL backends, in preparation for unifying the way all SSL
4695 backends are accessed.
4696
4697 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4698
4699- [Johannes Schindelin brought this change]
4700
4701 vtls: make sure all _data_pending() functions return bool
4702
4703 This patch makes the signature of the _data_pending() functions
4704 consistent among the SSL backends, in preparation for unifying the way
4705 all SSL backends are accessed.
4706
4707 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4708
4709- [Johannes Schindelin brought this change]
4710
4711 vtls: make sure all _cleanup() functions return void
4712
4713 This patch makes the signature of the _cleanup() functions consistent
4714 among the SSL backends, in preparation for unifying the way all SSL
4715 backends are accessed.
4716
4717 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4718
4719- [Johannes Schindelin brought this change]
4720
4721 vtls: use consistent signature for _random() implementations
4722
4723 This will make the upcoming multissl backend much easier to implement.
4724
4725 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4726
4727- strtooff: fix build for systems with long long but no strtoll option
4728
4729 Closes #1829
4730
4731 Reported-by: Dan Fandrich
4732 Bug: https://github.com/curl/curl/pull/1758#issuecomment-324861615
4733
4734- darwinssl: handle long strings in TLS certs
4735
4736 ... as the previous fixed length 128 bytes buffer was sometimes too
4737 small.
4738
4739 Fixes #1823
4740 Closes #1831
4741
4742 Reported-by: Benjamin Sergeant
4743 Assisted-by: Bill Pyne, Ray Satiro, Nick Zitzmann
4744
4745- system.h: include sys/poll.h for AIX
4746
4747 ... to get the event/revent defines that might be used for the poll
4748 struct.
4749
4750 Reported-by: Michael Smith
4751 Fixes #1828
4752 Closes #1833
4753
4754Dan Fandrich (26 Aug 2017)
4755- tests: Make sure libtests & unittests call curl_global_cleanup()
4756
4757 These were missed in commit c468c27b.
4758
4759Jay Satiro (26 Aug 2017)
4760- [theantigod brought this change]
4761
4762 winbuild: fix embedded manifest option
4763
4764 Embedded manifest option didn't work due to incorrect path.
4765
4766 Fixes https://github.com/curl/curl/issues/1832
4767
4768Daniel Stenberg (25 Aug 2017)
4769- fuzz/Makefile.am: remove curlbuild.h leftovers
4770
4771- examples/threaded-ssl: mention that this is for openssl before 1.1
4772
4773- imap: use defined names for response codes
4774
4775 When working on this code I found the previous setup a bit weird while
4776 using proper defines increases readability.
4777
4778 Closes #1824
4779
4780- CURLOPT_USERPWD.3: see also CURLOPT_PROXYUSERPWD
4781
4782- imap: support PREAUTH
4783
4784 It is a defined possible greeting at server startup that means the
4785 connection is already authenticated. See
4786 https://tools.ietf.org/html/rfc3501#section-7.1.4
4787
4788 Test 846 added to verify.
4789
4790 Fixes #1818
4791 Closes #1820
4792
4793Jay Satiro (23 Aug 2017)
4794- config-tpf: define SIZEOF_LONG
4795
4796 Recent changes that replaced CURL_SIZEOF_LONG in the source with
4797 SIZEOF_LONG broke builds that use the premade configuration files and
4798 don't have SIZEOF_LONG defined.
4799
4800 Bug: https://github.com/curl/curl/issues/1816
4801
4802Dan Fandrich (23 Aug 2017)
4803- test1453: Fixed <features>
4804
4805Daniel Stenberg (22 Aug 2017)
4806- [Gisle Vanem brought this change]
4807
4808 config-dos: add missing defines, SIZEOF_* and two others
4809
4810 Bug: #1816
4811
4812- curl: shorten and clean up CA cert verification error message
4813
4814 The previous message was just too long for ordinary people and it was
4815 encouraging users to use `--insecure` a little too easy.
4816
4817 Based-on-work-by: Frank Denis
4818
4819 Closes #1810
4820 Closes #1817
4821
4822- request-target.d: mention added in 7.55.0
4823
4824Marcel Raad (22 Aug 2017)
4825- tool_main: turn off MinGW CRT's globbing
4826
4827 By default, the MinGW CRT globs command-line arguments. This prevents
4828 getting a single asterisk into an argument as test 1299 does. Turn off
4829 globbing by setting the global variable _CRT_glob to 0 for MinGW.
4830
4831 Fixes https://github.com/curl/curl/issues/1751
4832 Closes https://github.com/curl/curl/pull/1813
4833
Elliott Hughescac39802018-04-27 16:19:43 -07004834Viktor Szakats (22 Aug 2017)
Alex Deymo486467e2017-12-19 19:04:07 +01004835- makefile.m32: add support for libidn2
4836
4837 libidn was replaced with libidn2 last year in configure.
4838 Caveat: libidn2 may depend on a list of further libs.
4839 These can be manually specified via CURL_LDFLAG_EXTRAS.
4840
4841 Closes https://github.com/curl/curl/pull/1815
4842
4843Jay Satiro (22 Aug 2017)
Elliott Hughescac39802018-04-27 16:19:43 -07004844- [Viktor Szakats brought this change]
Alex Deymo486467e2017-12-19 19:04:07 +01004845
4846 config-win32: define SIZEOF_LONG
4847
4848 Recent changes that replaced CURL_SIZEOF_LONG in the source with
4849 SIZEOF_LONG broke builds that use the premade configuration files and
4850 don't have SIZEOF_LONG defined.
4851
4852 Closes https://github.com/curl/curl/pull/1814
4853
4854Daniel Stenberg (20 Aug 2017)
4855- cmake: enable picky compiler options with clang and gcc
4856
4857 closes #1799
4858
4859- curl/system.h: fix build for hppa
4860
4861 Reported-by: John David Anglin
4862 Bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=872502#10
4863
4864- [Even Rouault brought this change]
4865
4866 tftp: fix memory leak on too long filename
4867
4868 Fixes
4869
4870 $ valgrind --leak-check=full ~/install-curl-git/bin/curl tftp://localhost/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaz
4871
4872 ==9752== Memcheck, a memory error detector
4873 ==9752== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
4874 ==9752== Using Valgrind-3.11.0 and LibVEX; rerun with -h for copyright info
4875 ==9752== Command: /home/even/install-curl-git/bin/curl tftp://localhost/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaz
4876 ==9752==
4877 curl: (71) TFTP file name too long
4878
4879 ==9752==
4880 ==9752== HEAP SUMMARY:
4881 ==9752== 505 bytes in 1 blocks are definitely lost in loss record 11 of 11
4882 ==9752== at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
4883 ==9752== by 0x4E61CED: Curl_urldecode (in /home/even/install-curl-git/lib/libcurl.so.4.4.0)
4884 ==9752== by 0x4E75868: tftp_state_machine (in /home/even/install-curl-git/lib/libcurl.so.4.4.0)
4885 ==9752== by 0x4E761B6: tftp_do (in /home/even/install-curl-git/lib/libcurl.so.4.4.0)
4886 ==9752== by 0x4E711B6: multi_runsingle (in /home/even/install-curl-git/lib/libcurl.so.4.4.0)
4887 ==9752== by 0x4E71D00: curl_multi_perform (in /home/even/install-curl-git/lib/libcurl.so.4.4.0)
4888 ==9752== by 0x4E6950D: curl_easy_perform (in /home/even/install-curl-git/lib/libcurl.so.4.4.0)
4889 ==9752== by 0x40E0B7: operate_do (in /home/even/install-curl-git/bin/curl)
4890 ==9752== by 0x40E849: operate (in /home/even/install-curl-git/bin/curl)
4891 ==9752== by 0x402693: main (in /home/even/install-curl-git/bin/curl)
4892
4893 Fixes https://oss-fuzz.com/v2/testcase-detail/5232311106797568
4894 Credit to OSS Fuzz
4895
4896 Closes #1808
4897
4898Dan Fandrich (19 Aug 2017)
4899- runtests: fixed case insensitive matching of keywords
4900
4901 Commit 5c2aac71 didn't work in the case of mixed-case keywords given on
4902 the command-line.
4903
4904- tests: Make sure libtests call curl_global_cleanup()
4905
4906 This ensures that global data allocations are freed so Valgrind stays
4907 happy. This was a problem with at least PolarSSL and mbedTLS.
4908
4909Daniel Stenberg (18 Aug 2017)
4910- RELEASE-NOTES: synced with 8baead425
4911
4912- scripts/contri*sh: use "git log --use-mailmap"
4913
4914- mailmap: de-duplify some git authors
4915
4916- http2_recv: return error better on fatal h2 errors
4917
4918 Ref #1012
4919 Figured-out-by: Tatsuhiro Tsujikawa
4920
4921- KNOWN_BUGS: HTTP test server 'connection-monitor' problems
4922
4923 Closes #868
4924
4925- curl/system.h: check for __ppc__ as well
4926
4927 ... regression since issue #1774 (commit 10b3df10596a) since obviously
4928 some older gcc doesn't know __powerpc__ while some newer doesn't know
4929 __ppc__ ...
4930
4931 Fixes #1797
4932 Closes #1798
4933 Reported-by: Ryan Schmidt
4934
4935- [Jan Alexander Steffens (heftig) brought this change]
4936
4937 http: Don't wait on CONNECT when there is no proxy
4938
4939 Since curl 7.55.0, NetworkManager almost always failed its connectivity
4940 check by timeout. I bisected this to 5113ad04 (http-proxy: do the HTTP
4941 CONNECT process entirely non-blocking).
4942
4943 This patch replaces !Curl_connect_complete with Curl_connect_ongoing,
4944 which returns false if the CONNECT state was left uninitialized and lets
4945 the connection continue.
4946
4947 Closes #1803
4948 Fixes #1804
4949
4950 Also-fixed-by: Gergely Nagy
4951
4952- [Johannes Schindelin brought this change]
4953
4954 metalink: adjust source code style
4955
4956 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4957
4958- CURL_SIZEOF_LONG: removed, use only SIZEOF_LONG
4959
4960- lib557: no longer use CURL_SIZEOF_* defines
4961
4962- config-win32: define SIZEOF_CURL_OFF_T
4963
4964- cmake: sizeof curl_off_t, remove unused detections
4965
4966- system.h: remove all CURL_SIZEOF_* defines
4967
4968 ... as they're not used externally and internally we check for the sizes
4969 already in configure etc.
4970
4971 Closes #1767
4972
4973- ftp: fix CWD when doing multicwd then nocwd on same connection
4974
4975 Fixes #1782
4976 Closes #1787
4977 Reported-by: Peter Lamare
4978
4979- CURLOPT_SSH_COMPRESSION.3: enable with 1L
4980
4981 (leaves other values reserved for the future)
4982
4983- compressed-ssh.d: "Added: 7.56.0"
4984
4985- curl/system.h: checksrc compliance
4986
4987Jay Satiro (17 Aug 2017)
Elliott Hughescac39802018-04-27 16:19:43 -07004988- [Viktor Szakats brought this change]
Alex Deymo486467e2017-12-19 19:04:07 +01004989
4990 ssh: add the ability to enable compression (for SCP/SFTP)
4991
4992 The required low-level logic was already available as part of
4993 `libssh2` (via `LIBSSH2_FLAG_COMPRESS` `libssh2_session_flag()`[1]
4994 option.)
4995
4996 This patch adds the new `libcurl` option `CURLOPT_SSH_COMPRESSION`
4997 (boolean) and the new `curl` command-line option `--compressed-ssh`
4998 to request this `libssh2` feature. To have compression enabled, it
4999 is required that the SSH server supports a (zlib) compatible
5000 compression method and that `libssh2` was built with `zlib` support
5001 enabled.
5002
5003 [1] https://www.libssh2.org/libssh2_session_flag.html
5004
5005 Ref: https://github.com/curl/curl/issues/1732
5006 Closes https://github.com/curl/curl/pull/1735
5007
5008- examples/ftpuploadresume: checksrc compliance
5009
5010- [Maksim Stsepanenka brought this change]
5011
5012 http_proxy: fix build error for CURL_DOES_CONVERSIONS
5013
5014 Closes https://github.com/curl/curl/pull/1793
5015
5016GitHub (16 Aug 2017)
5017- [Nick Zitzmann brought this change]
5018
5019 configure: check for __builtin_available() availability (#1788)
5020
5021 This change does two things:
5022 1. It un-breaks the build in Xcode 9.0. (Xcode 9.0 is currently
5023 failing trying to compile connectx() in lib/connect.c.)
5024 2. It finally weak-links the connectx() function, and falls back on
5025 connect() when run on older operating systems.
5026
5027Daniel Stenberg (16 Aug 2017)
5028- travis: add metalink to some osx builds
5029
5030 Closes #1790
5031
5032- [Max Dymond brought this change]
5033
5034 coverage: Use two coveralls commands to get lib/vtls results
5035
5036 closes #1747
5037
5038- darwinssi: fix error: variable length array used
5039
5040- m4/curl-compilers.m4: use proper quotes around string, not backticks
5041
5042 ... when setting clang version to assume 3.7
5043
5044 Caused a lot of "integer expression expected" warnings by configure.
5045
5046- [Benbuck Nason brought this change]
5047
5048 cmake: remove dead code for DISABLED_THREADSAFE
5049
5050 Closes #1786
5051
5052Jay Satiro (15 Aug 2017)
5053- [Jakub Zakrzewski brought this change]
5054
5055 curl-confopts.m4: fix --disable-threaded-resolver
5056
5057 Closes https://github.com/curl/curl/issues/1784
5058
5059Daniel Stenberg (15 Aug 2017)
5060- [Ryan Winograd brought this change]
5061
5062 progress: Track total times following redirects
5063
5064 Update the progress timers `t_nslookup`, `t_connect`, `t_appconnect`,
5065 `t_pretransfer`, and `t_starttransfer` to track the total times for
5066 these activities when a redirect is followed. Previously, only the times
5067 for the most recent request would be tracked.
5068
5069 Related changes:
5070
5071 - Rename `Curl_pgrsResetTimesSizes` to `Curl_pgrsResetTransferSizes`
5072 now that the function only resets transfer sizes and no longer
5073 modifies any of the progress timers.
5074
5075 - Add a bool to the `Progress` struct that is used to prevent
5076 double-counting `t_starttransfer` times.
5077
5078 Added test case 1399.
5079
5080 Fixes #522 and Known Bug 1.8
5081 Closes #1602
5082 Reported-by: joshhe on github
5083
5084- [Benbuck Nason brought this change]
5085
5086 cmake: remove dead code for CURL_DISABLE_RTMP
5087
5088 Closes #1785
5089
5090Kamil Dudka (15 Aug 2017)
5091- zsh.pl: produce a working completion script again
5092
5093 Commit curl-7_54_0-118-g8b2f22e changed the output format of curl --help
5094 to use <file> and <dir> instead of FILE and DIR, which caused zsh.pl to
5095 produce a broken completion script:
5096
5097 % curl --<TAB>
5098 _curl:10: no such file or directory: seconds
5099
5100 Closes #1779
5101
5102Daniel Stenberg (15 Aug 2017)
5103- curlver: toward 7.56.0?
5104
5105- RELEASE-NOTES: synced with 91c46dc44
5106
5107- test1449: FTP download range with an too large size
5108
5109- strtoofft: reduce integer overflow risks globally
5110
5111 ... make sure we bail out on overflows.
5112
5113 Reported-by: Brian Carpenter
5114 Closes #1758
5115
5116- travis: build the examples too
5117
5118 to make sure they keep building warning-free
5119
5120 Closes #1777
5121
5122- runtests: match keywords case insensitively
5123
5124- examples/ftpuploadresume.c: use portable code
5125
5126 ... converted from the MS specific _snscanf()
5127
Elliott Hughes82be86d2017-09-20 17:00:17 -07005128Version 7.55.1 (13 Aug 2017)
5129
5130Daniel Stenberg (13 Aug 2017)
5131- RELEASE-NOTES/THANKS: curl 7.55.1 release time
5132
5133- gitignore: ignore .xz now instead of .lzma
5134
5135- [Sergei Nikulov brought this change]
5136
5137 cmake: Threads detection update. ref: #1702
5138
5139 Closes #1719
5140
5141- ipv6_scope: support unique local addresses
5142
5143 Fixes #1764
5144 Closes #1773
5145 Reported-by: James Slaughter
5146
5147- [Alex Potapenko brought this change]
5148
5149 curl/system.h: GCC doesn't define __ppc__ on PowerPC, uses __powerpc__
5150
5151 Closes #1774
5152
5153- test1448: verify redirect to IDN using URL
5154
5155 Closes #1772
5156
5157- [Salah-Eddin Shaban brought this change]
5158
5159 redirect: skip URL encoding for host names
5160
5161 This fixes redirects to IDN URLs
5162
5163 Fixes #1441
5164 Closes #1762
5165 Reported by: David Lord
5166
5167- test2032: mark as flaky (again)
5168
5169- travis: test cmake build on tarball too
5170
5171 Could've prevented #1755
5172
5173- [Simon Warta brought this change]
5174
5175 cmake: allow user to override CMAKE_DEBUG_POSTFIX
5176
5177 Closes #1763
5178
5179- connect-to.d: better language
5180
5181- connect-to.d: clarified
5182
5183- bagder/Curl_tvdiff_us: fix the math
5184
5185 Regression since adef394ac5 (released in 7.55.0)
5186
5187 Reported-by: Han Qiao
5188 Fixes #1769
5189 Closes #1771
5190
5191- curl/system.h: add Oracle Solaris Studio
5192
5193 Fixes #1752
5194
5195- [Alessandro Ghedini brought this change]
5196
5197 docs: fix typo funtion -> function
5198
5199 Closes #1770
5200
5201Alessandro Ghedini (12 Aug 2017)
5202- docs: fix grammar in CURL_SSLVERSION_MAX_DEFAULT description
5203
5204- docs: fix typo stuct -> struct
5205
5206Dan Fandrich (12 Aug 2017)
5207- test1447: require a curl with http support
5208
5209Daniel Stenberg (11 Aug 2017)
5210- [Thomas Petazzoni brought this change]
5211
5212 curl/system.h: support more architectures
5213
5214 The long list of architectures in include/curl/system.h is annoying to
5215 maintain, and needs to be extended for each and every architecture to
5216 support.
5217
5218 Instead, let's rely on the __SIZEOF_LONG__ define of the gcc compiler
5219 (we are in the GNUC condition anyway), which tells us if long is 4
5220 bytes or 8 bytes.
5221
5222 This fixes the build of libcurl 7.55.0 on architectures such as
5223 OpenRISC or ARC.
5224
5225 Closes #1766
5226
5227 Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
5228
5229- test2033: this went flaky again
5230
5231 Suspicion: when we enabled the threaded resolver by default.
5232
5233- test1447: verifies the parse proxy fix in 6e0e152ce5c
5234
5235- [Even Rouault brought this change]
5236
5237 parse_proxy(): fix memory leak in case of invalid proxy server name
5238
5239 Fixes the below leak:
5240
5241 $ valgrind --leak-check=full ~/install-curl-git/bin/curl --proxy "http://a:b@/x" http://127.0.0.1
5242 curl: (5) Couldn't resolve proxy name
5243 ==5048==
5244 ==5048== HEAP SUMMARY:
5245 ==5048== in use at exit: 532 bytes in 12 blocks
5246 ==5048== total heap usage: 5,288 allocs, 5,276 frees, 445,271 bytes allocated
5247 ==5048==
5248 ==5048== 2 bytes in 1 blocks are definitely lost in loss record 1 of 12
5249 ==5048== at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
5250 ==5048== by 0x4E6CB79: parse_login_details (url.c:5614)
5251 ==5048== by 0x4E6BA82: parse_proxy (url.c:5091)
5252 ==5048== by 0x4E6C46D: create_conn_helper_init_proxy (url.c:5346)
5253 ==5048== by 0x4E6EA18: create_conn (url.c:6498)
5254 ==5048== by 0x4E6F9B4: Curl_connect (url.c:6967)
5255 ==5048== by 0x4E86D05: multi_runsingle (multi.c:1436)
5256 ==5048== by 0x4E88432: curl_multi_perform (multi.c:2160)
5257 ==5048== by 0x4E7C515: easy_transfer (easy.c:708)
5258 ==5048== by 0x4E7C74A: easy_perform (easy.c:794)
5259 ==5048== by 0x4E7C7B1: curl_easy_perform (easy.c:813)
5260 ==5048== by 0x414025: operate_do (tool_operate.c:1563)
5261 ==5048==
5262 ==5048== 2 bytes in 1 blocks are definitely lost in loss record 2 of 12
5263 ==5048== at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
5264 ==5048== by 0x4E6CBB6: parse_login_details (url.c:5621)
5265 ==5048== by 0x4E6BA82: parse_proxy (url.c:5091)
5266 ==5048== by 0x4E6C46D: create_conn_helper_init_proxy (url.c:5346)
5267 ==5048== by 0x4E6EA18: create_conn (url.c:6498)
5268 ==5048== by 0x4E6F9B4: Curl_connect (url.c:6967)
5269 ==5048== by 0x4E86D05: multi_runsingle (multi.c:1436)
5270 ==5048== by 0x4E88432: curl_multi_perform (multi.c:2160)
5271 ==5048== by 0x4E7C515: easy_transfer (easy.c:708)
5272 ==5048== by 0x4E7C74A: easy_perform (easy.c:794)
5273 ==5048== by 0x4E7C7B1: curl_easy_perform (easy.c:813)
5274 ==5048== by 0x414025: operate_do (tool_operate.c:1563)
5275
5276 Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2984
5277 Credit to OSS Fuzz for discovery
5278
5279 Closes #1761
5280
5281- RELEASE-NOTES: synced with 37f2195a9
5282
5283- curlver: bump to 7.55.1
5284
5285- openssl: fix "error: this statement may fall through"
5286
5287 A gcc7 warning.
5288
5289- [David Benjamin brought this change]
5290
5291 openssl: remove CONST_ASN1_BIT_STRING.
5292
5293 Just making the pointer as const works for the pre-1.1.0 path too.
5294
5295 Closes #1759
5296
5297- maketgz: remove old *.dist files before making the tarball
5298
5299 To avoid "old crap" unintentionally getting shipped.
5300
5301 Bug: https://curl.haxx.se/mail/lib-2017-08/0050.html
5302 Reported-by: Christian Weisgerber
5303
5304Jay Satiro (10 Aug 2017)
5305- mkhelp.pl: allow executing this script directly
5306
5307 - Enable execute permission (chmod +x)
5308
5309 - Change interpreter to /usr/bin/env perl
5310
5311 Ref: https://github.com/curl/curl/issues/1743
5312
5313Daniel Stenberg (10 Aug 2017)
5314- configure: use the threaded resolver backend by default if possible
5315
5316 Closes #1647
5317
5318- cmake: move cmake_uninstall.cmake to CMake/
5319
5320 Closes #1756
5321
5322- metalink: fix error: ‘*’ in boolean context, suggest ‘&&’ instead
5323
5324- dist: fix the cmake build by shipping cmake_uninstall.cmake.in too
5325
5326 Fixes #1755
5327
5328- travis: verify "make install"
5329
5330 Help-by: Jay Satiro
5331 Closes #1753
5332
5333Marcel Raad (10 Aug 2017)
5334- build: check out *.sln files with Windows line endings
5335
5336 Visual Studio doesn't like LF line endings in solution files and always
5337 converts them to CRLF when doing changes to the solution. Notably, this
5338 affects the solutions in the release archive.
5339
5340 Closes https://github.com/curl/curl/pull/1746
5341
5342- gitignore: ignore top-level .vs folder
5343
5344 This folder is generated when using the CMake build system from within
5345 Visual Studio.
5346
5347 Closes https://github.com/curl/curl/pull/1746
5348
5349Jay Satiro (10 Aug 2017)
5350- digest_sspi: Don't reuse context if the user/passwd has changed
5351
5352 Bug: https://github.com/curl/curl/issues/1685
5353 Reported-by: paulharris@users.noreply.github.com
5354
5355 Assisted-by: Isaac Boukris
5356
5357 Closes https://github.com/curl/curl/pull/1742
5358
5359Daniel Stenberg (9 Aug 2017)
5360- [Adam Sampson brought this change]
5361
5362 dist: Add dictserver.py/negtelnetserver.py to EXTRA_DIST
5363
5364 These weren't included in the 7.55.0 release, but are required in order
5365 to run the full test suite.
5366
5367 Closes #1744
5368
5369- [Adam Sampson brought this change]
5370
5371 curl: do bounds check using a double comparison
5372
5373 The fix for this in 8661a0aacc01492e0436275ff36a21734f2541bb wasn't
5374 complete: if the parsed number in num is larger than will fit in a long,
5375 the conversion is undefined behaviour (causing test1427 to fail for me
5376 on IA32 with GCC 7.1, although it passes on AMD64 and ARMv7). Getting
5377 rid of the cast means the comparison will be done using doubles.
5378
5379 It might make more sense for the max argument to also be a double...
5380
5381 Fixes #1750
5382 Closes #1749
5383
5384- make install: add 8 missing man pages to the installation
5385
5386- build: fix 'make install' with configure, install docs/libcurl/* too
5387
5388 Broken since d24838d4da9faa
5389
5390 Reported-by: Bernard Spil
5391
5392Version 7.55.0 (9 Aug 2017)
5393
5394Daniel Stenberg (9 Aug 2017)
5395- RELEASE-NOTES: curl 7.55.0
5396
5397- THANKS: 20 new contributors in 7.55.0
5398
Elliott Hughescac39802018-04-27 16:19:43 -07005399- [Viktor Szakats brought this change]
Elliott Hughes82be86d2017-09-20 17:00:17 -07005400
5401 docs/comments: Update to secure URL versions
5402
5403 Closes #1741
5404
5405- configure: fix recv/send/select detection on Android
5406
5407 ... since they now provide several functions as
5408 __attribute__((overloadable)), the argument detection logic need
5409 updates.
5410
5411 Patched-by: destman at github
5412
5413 Fixes #1738
5414 Closes #1739
5415
5416Marcel Raad (8 Aug 2017)
5417- ax_code_coverage.m4: update to latest version
5418
5419 This updates the script to aad5ad5fedb306b39f901a899b7bd305b66c418d
5420 from August 01, 2017. Notably, this removes the lconv version whitelist.
5421
5422 Closes https://github.com/curl/curl/pull/1716
5423
5424Daniel Stenberg (7 Aug 2017)
5425- test1427: verify command line parser integer overflow detection
5426
5427- curl: detect and bail out early on parameter integer overflows
5428
5429 Make the number parser aware of the maximum limit curl accepts for a
5430 value and return an error immediately if larger, instead of running an
5431 integer overflow later.
5432
5433 Fixes #1730
5434 Closes #1736
5435
5436- glob: do not continue parsing after a strtoul() overflow range
5437
5438 Added test 1289 to verify.
5439
5440 CVE-2017-1000101
5441
5442 Bug: https://curl.haxx.se/docs/adv_20170809A.html
5443 Reported-by: Brian Carpenter
5444
5445- tftp: reject file name lengths that don't fit
5446
5447 ... and thereby avoid telling send() to send off more bytes than the
5448 size of the buffer!
5449
5450 CVE-2017-1000100
5451
5452 Bug: https://curl.haxx.se/docs/adv_20170809B.html
5453 Reported-by: Even Rouault
5454
5455 Credit to OSS-Fuzz for the discovery
5456
5457- [Even Rouault brought this change]
5458
5459 file: output the correct buffer to the user
5460
5461 Regression brought by 7c312f84ea930d8 (April 2017)
5462
5463 CVE-2017-1000099
5464
5465 Bug: https://curl.haxx.se/docs/adv_20170809C.html
5466
5467 Credit to OSS-Fuzz for the discovery
5468
5469- easy_events: make event data static
5470
5471 First: this function is only used in debug-builds and not in
5472 release/real builds. It is used to drive tests using the event-based
5473 API.
5474
5475 A pointer to the local struct is passed to CURLMOPT_TIMERDATA, but the
5476 CURLMOPT_TIMERFUNCTION calback can in fact be called even after this
5477 funtion returns, namely when curl_multi_remove_handle() is called.
5478
5479 Reported-by: Brian Carpenter
5480
5481- getparameter: avoid returning uninitialized 'usedarg'
5482
5483 Fixes #1728
5484
5485Marcel Raad (5 Aug 2017)
5486- [Isaac Boukris brought this change]
5487
5488 gssapi: fix memory leak of output token in multi round context
5489
5490 When multiple rounds are needed to establish a security context
5491 (usually ntlm), we overwrite old token with a new one without free.
5492 Found by proposed gss tests using stub a gss implementation (by
5493 valgrind error), though I have confirmed the leak with a real
5494 gssapi implementation as well.
5495
5496 Closes https://github.com/curl/curl/pull/1733
5497
5498- darwinssl: fix compiler warning
5499
5500 clang complains:
5501 vtls/darwinssl.c:40:8: error: extra tokens at end of #endif directive
5502 [-Werror,-Wextra-tokens]
5503
5504 This breaks the darwinssl build on Travis. Fix it by making this token
5505 a comment.
5506
5507 Closes https://github.com/curl/curl/pull/1734
5508
5509- CMake: fix CURL_WERROR for MSVC
5510
5511 When using CURL_WERROR in MSVC builds, the debug flags were overridden
5512 by the release flags and /WX got added twice in debug mode.
5513
5514 Closes https://github.com/curl/curl/pull/1715
5515
5516Daniel Stenberg (4 Aug 2017)
5517- RELEASE-NOTES: synced with 561e9217c
5518
5519- test1010: verify that #1718 is fixed
5520
5521 ... by doing two transfers in nocwd mode and check that there's no
5522 superfluous CWD command.
5523
5524- FTP: skip unnecessary CWD when in nocwd mode
5525
5526 ... when reusing a connection. If it didn't do any CWD previously.
5527
5528 Fixes #1718
5529
5530Marcel Raad (4 Aug 2017)
5531- travis: explicitly specify dist
5532
5533 This makes the builds more reproducible as travis is currently rolling
5534 out trusty as default dist [1]. Specifically, this avoids coverage
5535 check failures when trusty is used as seen in [2] until we figure out
5536 what's wrong.
5537
5538 [1] https://blog.travis-ci.com/2017-07-11-trusty-as-default-linux-is-coming
5539 [2] https://github.com/curl/curl/pull/1692
5540
5541 Closes https://github.com/curl/curl/pull/1725
5542
5543Daniel Stenberg (4 Aug 2017)
5544- travis: BUILD_TYPE => T
5545
5546 (to make the full line appear nicer on travis web UI)
5547
5548- travis: add osx build with darwinssl
5549
5550 Closes #1706
5551
5552- darwin: silence compiler warnings
5553
5554 With a clang pragma and three type fixes
5555
5556 Fixes #1722
5557
5558- BUILD.WINDOWS: mention buildconf.bat for builds off git
5559
5560- darwinssl: fix curlssl_sha256sum() compiler warnings on first argument
5561
5562- test130: verify comments in .netrc
5563
5564- [Gisle Vanem brought this change]
5565
5566 netrc: skip lines starting with '#'
5567
5568 Bug: https://curl.haxx.se/mail/lib-2017-08/0008.html
5569
5570Marcel Raad (3 Aug 2017)
5571- CMake: set MSVC warning level to 4
5572
5573 The MSVC warning level defaults to 3 in CMake. Change it to 4, which is
5574 consistent with the Visual Studio and NMake builds. Disable level 4
5575 warning C4127 for the library and additionally C4306 for the test
5576 servers to get a clean CURL_WERROR build as that warning is raised in
5577 some macros in older Visual Studio versions.
5578
5579 Ref: https://github.com/curl/curl/pull/1667#issuecomment-314082794
5580 Closes https://github.com/curl/curl/pull/1711
5581
5582Daniel Stenberg (2 Aug 2017)
5583- CURLOPT_NETRC.3: fix typo in 7e48aa386156f9c2
5584
5585 Reported-by: Viktor Szakats
5586
5587- CURLOPT_NETRC.3: mention the file name on windows
5588
5589 ... and CURLOPT_NETRC_FILE(3).
5590
5591- travis: build osx with libressl too
5592
5593- travis: build osx with openssl too
5594
5595- tests/server/util: fix curltime mistake from 4dee50b9c80f9
5596
5597Marcel Raad (1 Aug 2017)
5598- curl_threads: fix MSVC compiler warning
5599
5600 Use LongToHandle to convert from long to HANDLE in the Win32
5601 implementation.
5602 This should fix the following warning when compiling with
5603 MSVC 11 (2012) in 64-bit mode:
5604 lib\curl_threads.c(113): warning C4306:
5605 'type cast' : conversion from 'long' to 'HANDLE' of greater size
5606
5607 Closes https://github.com/curl/curl/pull/1717
5608
5609Daniel Stenberg (1 Aug 2017)
5610- BUGS: improved phrasing about security bugs
5611
5612 Reported-by: Max Dymond
5613
5614- BUGS: clarify how to report security related bugs
5615
5616- [Brad Spencer brought this change]
5617
5618 multi: fix request timer management
5619
5620 There are some bugs in how timers are managed for a single easy handle
5621 that causes the wrong "next timeout" value to be reported to the
5622 application when a new minimum needs to be recomputed and that new
5623 minimum should be an existing timer that isn't currently set for the
5624 easy handle. When the application drives a set of easy handles via the
5625 `curl_multi_socket_action()` API (for example), it gets told to wait the
5626 wrong amount of time before the next call, which causes requests to
5627 linger for a long time (or, it is my guess, possibly forever).
5628
5629 Bug: https://curl.haxx.se/mail/lib-2017-07/0033.html
5630
5631Jay Satiro (1 Aug 2017)
5632- curl_setup: Define CURL_NO_OLDIES for building libcurl
5633
5634 .. to catch accidental use of deprecated error codes.
5635
5636 Ref: https://github.com/curl/curl/issues/1688#issuecomment-316764237
5637
5638Daniel Stenberg (1 Aug 2017)
5639- [Jeremy Tan brought this change]
5640
5641 configure: fix the check for IdnToUnicode
5642
5643 Fixes #1669
5644 Closes #1713
5645
5646- http: fix response code parser to avoid integer overflow
5647
5648 test 1429 and 1433 were updated to work with the stricter HTTP status line
5649 parser.
5650
5651 Closes #1714
5652 Reported-by: Brian Carpenter
5653
5654Jay Satiro (31 Jul 2017)
5655- [Dwarakanath Yadavalli brought this change]
5656
5657 libcurl: Stop using error codes defined under CURL_NO_OLDIES
5658
5659 Fixes https://github.com/curl/curl/issues/1688
5660 Closes https://github.com/curl/curl/pull/1712
5661
5662- include.d: clarify --include is only for response headers
5663
5664 Follow-up to 171f8de and de6de94.
5665
5666 Bug: https://github.com/curl/curl/commit/de6de94#commitcomment-23370851
5667 Reported-by: Daniel Stenberg
5668
5669Daniel Stenberg (30 Jul 2017)
Elliott Hughes0128fe42018-02-27 14:57:55 -08005670- [Jason Juang brought this change]
Elliott Hughes82be86d2017-09-20 17:00:17 -07005671
5672 cmake: support make uninstall
5673
5674 Closes #1674
5675
5676- RELEASE-NOTES: synced with 001701c47
5677
5678Marcel Raad (29 Jul 2017)
5679- AppVeyor: now really use CURL_WERROR
5680
5681 It was misspelled as CURL_ERROR in commit
5682 2d86e8d1286e0fbe3d811e2e87fa0b5e53722db4.
5683
5684 Closes https://github.com/curl/curl/pull/1686
5685
5686Jay Satiro (29 Jul 2017)
5687- tool_help: clarify --include is only for response headers
5688
5689 Follow-up to 171f8de.
5690
5691 Ref: https://github.com/curl/curl/issues/1704
5692
5693- splay: fix signed/unsigned mismatch warning
5694
5695 Follow-up to 4dee50b.
5696
5697 Ref: https://github.com/curl/curl/pull/1693
5698
5699Daniel Stenberg (28 Jul 2017)
5700- include.d: clarify that it concerns the response headers
5701
5702 Reported-by: olesteban at github
5703 Fixes #1704
5704
5705- [Johannes Schindelin brought this change]
5706
5707 curl_rtmp: fix a compiler warning
5708
5709 The headers of librtmp declare the socket as `int`, and on Windows, that
5710 disagrees with curl_socket_t.
5711
5712 Bug: #1652
5713
5714 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
5715
5716- test1323: verify curlx_tvdiff
5717
5718- timeval: struct curltime is a struct timeval replacement
5719
5720 ... to make all libcurl internals able to use the same data types for
5721 the struct members. The timeval struct differs subtly on several
5722 platforms so it makes it cumbersome to use everywhere.
5723
5724 Ref: #1652
5725 Closes #1693
5726
5727- darwinssl: fix variable type mistake (regression)
5728
5729 ... which made --tlsv1.2 not work because it would blank the max tls
5730 version variable.
5731
5732 Reported-by: Nick Miyake
5733 Bug: #1703
5734
5735- multi: mention integer overflow risk if using > 500 million sockets
5736
5737 Reported-by: ovidiu-benea@users.noreply.github.com
5738
5739 Closes #1675
5740 Closes #1683
5741
5742- checksrc: escape open brace in regex
5743
5744 ... to silence warning.
5745
5746Kamil Dudka (20 Jul 2017)
5747- nss: fix a possible use-after-free in SelectClientCert()
5748
5749 ... causing a SIGSEGV in showit() in case the handle used to initiate
5750 the connection has already been freed.
5751
5752 This commit fixes a bug introduced in curl-7_19_5-204-g5f0cae803.
5753
5754 Reported-by: Rob Sanders
5755 Bug: https://bugzilla.redhat.com/1436158
5756
5757- nss: unify the coding style of nss_send() and nss_recv()
5758
5759 No changes in behavior intended by this commit.
5760
5761Marcel Raad (18 Jul 2017)
5762- tests/server/resolve.c: fix deprecation warning
5763
5764 MSVC warns that gethostbyname is deprecated. Always use getaddrinfo
5765 instead to fix this when IPv6 is enabled, also for IPv4 resolves. This
5766 is also consistent with what libcurl does.
5767
5768 Closes https://github.com/curl/curl/pull/1682
5769
5770Jay Satiro (17 Jul 2017)
5771- darwinssl: fix pinnedpubkey build error
5772
5773 - s/SessionHandle/Curl_easy/
5774
5775 Bug: https://github.com/curl/curl/commit/eb16305#commitcomment-23035670
5776 Reported-by: Gisle Vanem
5777
5778Marcel Raad (16 Jul 2017)
5779- rtspd: fix GCC warning after MSVC warning fix
5780
5781 Older GCC warns:
5782 /tests/server/rtspd.c:1194:10: warning: missing braces around
5783 initializer [-Wmissing-braces]
5784
5785 Fix this by using memset instead of an initializer.
5786
5787- libtest: fix MSVC warning C4706
5788
5789 With warning level 4, MSVC warns about assignments within conditional
5790 expressions. Change the while loop to a do-while loop to fix this. This
5791 change is also consistent with CODE_STYLE.md.
5792
5793- sockfilt: suppress conversion warning with explicit cast
5794
5795 MSVC warns when implicitly casting -1 to unsigned long.
5796
5797- rtspd: fix MSVC level 4 warning
5798
5799 warning C4701: potentially uninitialized local variable 'req' used
5800
5801- winbuild: re-enable warning C4127 for curl tool
5802
5803 Disabled in cda19a345f6970e22fe8b7a808aeb8f086a21eac. It only needs to
5804 be disabled for libcurl.
5805
5806- winbuild: build with warning level 4
5807
5808 This is consistent with 7bc64561a2e63ca93e4b0b31d350773ba80955c2, which
5809 changed the warning level from 3 to 4 for the Visual Studio project
5810 files. But disable the level 4 warning C4127 "conditional expression is
5811 constant", as that one is issued by older versions of the Windows SDK
5812 as well as curl itself under some circumstances.
5813
5814 Closes https://github.com/curl/curl/pull/1667
5815
5816Jay Satiro (12 Jul 2017)
5817- [Max Dymond brought this change]
5818
5819 travis: install libidn2
5820
5821 Install libidn2 to increase test coverage (IDN tests)
5822
5823 Closes https://github.com/curl/curl/pull/1673
5824
5825Marcel Raad (12 Jul 2017)
5826- travis: enable warnings also in release mode
5827
5828 ... to get warnings also on Linux/GCC and OSX/clang.
5829
5830 Closes https://github.com/curl/curl/pull/1666
5831
5832Daniel Stenberg (12 Jul 2017)
5833- [Max Dymond brought this change]
5834
5835 travis: install libssh2
5836
5837 Install libssh2 to increase test coverage (SFTP, SCP)
5838
5839Marcel Raad (12 Jul 2017)
5840- system.h: include winsock2.h before windows.h
5841
5842 ... to avoid compiler warnings if the user doesn't want
5843 WIN32_LEAN_AND_MEAN.
5844
5845- build: remove WIN32_LEAN_AND_MEAN from individual build systems
5846
5847 It's defined for all build systems in curl_setup.h since commit
5848 beb08481d01a07a8b10938b1078a5e298b1c2912. This caused macro
5849 redefinition warnings in the configure builds.
5850
5851 Closes https://github.com/curl/curl/pull/1677
5852
5853Jay Satiro (11 Jul 2017)
5854- ISSUE_TEMPLATE: Add a comment not to file security issues on github
5855
5856Marcel Raad (11 Jul 2017)
5857- curl_setup: always define WIN32_LEAN_AND_MEAN on Windows
5858
5859 Make sure to always define WIN32_LEAN_AND_MEAN before including any
5860 Windows headers to avoid pulling in unnecessary headers. This avoids
5861 unnecessary macro clashes and compiler warnings.
5862
5863 Ref: https://github.com/curl/curl/issues/1562
5864 Closes https://github.com/curl/curl/pull/1672
5865
5866Jay Satiro (11 Jul 2017)
5867- strerror: Preserve Windows error code in some functions
5868
5869 This is a follow-up to af02162 which removed (SET_)ERRNO macros. That
5870 commit was an earlier draft that I committed by mistake, which was then
5871 remedied by a5834e5 and e909de6, and now this commit. With this commit
5872 there is now no difference between the current code and the changes that
5873 were approved in the final draft.
5874
5875 Thanks-to: Max Dymond, Marcel Raad, Daniel Stenberg, Gisle Vanem
5876 Ref: https://github.com/curl/curl/pull/1589
5877
5878Marcel Raad (10 Jul 2017)
5879- [Max Dymond brought this change]
5880
5881 tests: Fix up issues with errno in test files
5882
5883 Closes https://github.com/curl/curl/pull/1671
5884
5885Daniel Stenberg (10 Jul 2017)
5886- errno: fix non-windows builds after af0216251b94e7
5887
5888- [Ryan Winograd brought this change]
5889
5890 make: fix docs build on OpenBSD
5891
5892 Ref: #1591
5893
5894Marcel Raad (10 Jul 2017)
5895- ldap: fix MinGW compiler warning
5896
5897 ldap_bind_s is marked as deprecated in w32api's winldap.h shipping with
5898 the latest original MinGW, resulting in compiler warnings since commit
5899 f0fe66f13c93d3d0af45d9fb1231c9164e0f9dc8. Fix this for the non-SSPI
5900 case by using ldap_simple_bind_s again instead of ldap_bind_s with
5901 LDAP_AUTH_SIMPLE.
5902
5903 Closes https://github.com/curl/curl/pull/1664
5904
5905- curl-compilers.m4: disable warning spam with Cygwin's clang
5906
5907 When building with Cygwin or MinGW, libtool uses a wrapper executable
5908 instead of a wrapper script [1], which is written in C and throws
5909 missing-variable-declarations warnings. Don't enable these warnings on
5910 Cygwin and MinGW in order to avoid warnings for every executable built,
5911 which spams the test suite output when using Cygwin's clang.
5912
5913 [1] https://www.gnu.org/software/libtool/manual/html_node/Wrapper-executables.html
5914
5915 Closes https://github.com/curl/curl/pull/1665
5916
5917Jay Satiro (10 Jul 2017)
5918- curl_setup_once: Remove ERRNO/SET_ERRNO macros
5919
5920 Prior to this change (SET_)ERRNO mapped to GetLastError/SetLastError
5921 for Win32 and regular errno otherwise.
5922
5923 I reviewed the code and found no justifiable reason for conflating errno
5924 on WIN32 with GetLastError/SetLastError. All Win32 CRTs support errno,
5925 and any Win32 multithreaded CRT supports thread-local errno.
5926
5927 Fixes https://github.com/curl/curl/issues/895
5928 Closes https://github.com/curl/curl/pull/1589
5929
5930- tool_getparam: fix potentially uninitialized err
5931
5932Marcel Raad (9 Jul 2017)
5933- smb: rename variable to fix shadowing warning
5934
5935 GCC 4.6.3 on travis complains:
5936 smb.c: In function ‘get_posix_time’:
5937 smb.c:725:13: error: declaration of ‘time’ shadows a global declaration
5938 [-Werror=shadow]
5939
5940 Fix this by renaming the variable.
5941
5942- tool_cb_wrt: fix variable shadowing warning
5943
5944 GCC 4.4 complains:
5945 tool_cb_wrt.c:81: error: declaration of ‘isatty’ shadows a global
5946 declaration
5947 /usr/include/unistd.h:782: error: shadowed declaration is here
5948
5949 Fix this by renaming the variable.
5950
5951 Closes https://github.com/curl/curl/pull/1661
5952
5953Daniel Stenberg (8 Jul 2017)
5954- RELEASE-NOTES: synced with be2c999b8
5955
5956- travis: install stunnel
5957
5958- valgrind.supp: supress OpenSSL false positive seen on travis
5959
5960- travis: detect and use valgrind for normal builds
5961
5962 Closes #1653
5963
5964- travis: add SMB, DICT, TELNET torture to coverage test
5965
5966- [Paul Harris brought this change]
5967
5968 cmake: offer CMAKE_DEBUG_POSTFIX when building with MSVC
5969
5970 Removes BUILD_RELEASE_DEBUG_DIRS since it wasn't used anywhere.
5971
5972 Closes #1649
5973
5974- CURLOPT_POSTFIELDS.3: explain the 100-continue magic better
5975
5976- [Max Dymond brought this change]
5977
5978 test1452: add telnet negotiation
5979
5980 Add a basic telnet server for negotiating some telnet options before
5981 echoing back any data that's sent to it.
5982
5983 Closes #1645
5984
5985- travis: do more tests in the coverage run
5986
5987 I added a selection of torture and event tests that run "fast enough"
5988
5989- curl_easy_escape.3: mention the (lack of) encoding
5990
5991 Fixes #1612
5992 Reported-by: Jeroen Ooms
5993
5994- [Gisle Vanem brought this change]
5995
5996 memdebug: don't setbuf() if the file open failed
5997
5998 Bug: https://github.com/curl/curl/issues/828#issuecomment-313475151
5999
6000- appveyor: enable CURL_WERROR on all builds
6001
6002- cmake: add CURL_WERROR for enabling "warning as errors"
6003
6004- [Hannes Magnusson brought this change]
6005
6006 cmake: remove spurious "-l" from linker flags
6007
6008 Fixes #1552
6009
6010- test506: skip if threaded-resolver
6011
6012- runtests: support "threaded-resolver" as a feature
6013
6014 ... to let tests require it or skip if present
6015
6016- asyn-thread.c: fix unused variable warnings on macOS
6017
6018- http: s/TINY_INITIAL_POST_SIZE/EXPECT_100_THRESHOLD
6019
6020 Make the name reflect its use better, and add a short comment describing
6021 what it's for.
6022
6023- cmake: if inet_pton is used, bump _WIN32_WINNT
6024
6025 ... and make sure inet_pton is always checked for when *not* using Windows,
6026 which is a regression from 4fc6ebe18.
6027
6028 Idea-by: Sergei Nikulov
6029
6030- select.h: avoid macro redefinition harder
6031
6032 ... by checking the POLLIN define, as the header file checks don't work
6033 on Windows.
6034
6035- inet_pton: fix include on windows to get prototype
6036
6037 inet_pton() exists on Windows and gets used by our cmake builds. Make
6038 sure the correct header file is included to avoid compiler warnings.
6039
6040 Closes #1639
6041
6042- TODO: 1.10 auto-detect proxy
6043
6044 Closes #1572
6045
6046- TODO: HTTP proxy CONNECT is non-blocking now
6047
6048- cmake: fix send/recv argument scanner for windows
6049
6050 ... by simply trying the Windows argument types first.
6051
6052 Fixes #1640
6053
6054- RELEASE-NOTES: synced with 596cfb6c0
6055
6056- [Gisle Vanem brought this change]
6057
6058 smb: add support for CURLOPT_FILETIME
6059
6060 Bug: https://curl.haxx.se/mail/lib-2017-07/0005.html
6061
6062 Closes #1643
6063
6064- travis: install nghttp2 on linux builds
6065
6066 Closes #1642
6067
6068- [Gisle Vanem brought this change]
6069
6070 smb: fix build for djgpp/MSDOS
6071
6072 bug: https://curl.haxx.se/mail/lib-2017-07/0005.html
6073
6074- configure: try ldap/lber in reversed order first
6075
6076 When scanning for which LDAP libraries to use, try the -lldap -llber
6077 combination before the reversed order since it has a greater chance of
6078 working when linking with libcurl statically.
6079
6080 Fixes #1619
6081 Closes #1634
6082 Reported-by: David E. Narváez
6083
6084- configure: remove checks for 5 functions never used
6085
6086 fork, getprotobyname, inet_addr, perror, uname
6087
6088 closes #1638
6089
6090- dist: add SMB python deps into the tarball
6091
6092- [Max Dymond brought this change]
6093
6094 test1451: add SMB support to the testbed
6095
6096 Add test 1451 which does some very basic SMB testing using the impacket
6097 SMB server.
6098
6099 Closes #1630
6100
6101- [Max Dymond brought this change]
6102
6103 test: add impacket for SMB testing
6104
6105 Import impacket 0.9.15 for use in SMB testing. This was generated by
6106 doing "pip2.7 install -t . impacket"
6107
6108 Unnecessary files for current testing were deleted.
6109
6110- travis.yml: use --enable-werror on debug builds
6111
6112 ... to better detect and fault on compiler warnings/errors
6113
6114 Closes #1637
6115
6116- tool_sleep: typecast to avoid macos compiler warning
6117
6118 tool_sleep.c:54:24: error: implicit conversion loses integer precision:
6119 'long' to '__darwin_suseconds_t' (aka 'int')
6120 [-Werror,-Wshorten-64-to-32]
6121
6122- [Martin Kepplinger brought this change]
6123
6124 timeval.c: Use long long constant type for timeval assignment
6125
6126 On a 64 bit host, sparse says:
6127
6128 timeval.c:148:15: warning: constant 0x7fffffffffffffff is so big it is long
6129 timeval.c:149:12: warning: constant 0x7fffffffffffffff is so big it is long
6130
6131 so let's use long long constant types in order to prevent undesired overflow
6132 failures.
6133
6134 Bug: https://curl.haxx.se/mail/lib-2017-07/0003.html
6135
6136 Closes #1636
6137
6138 Signed-off-by: Martin Kepplinger <martink@posteo.de>
6139
6140- url: make the original string get used on subsequent transfers
6141
6142 ... since CURLOPT_URL should follow the same rules as other options:
6143 they remain set until changed or cleared.
6144
6145 Added test 1551 to verify.
6146
6147 Fixes #1631
6148 Closes #1632
6149 Reported-by: Pavel Rochnyak
6150
6151- [Johannes Schindelin brought this change]
6152
6153 gtls: fix build when sizeof(long) < sizeof(void *)
6154
6155 - Change gnutls pointer/int macros to pointer/curl_socket_t.
6156 Prior to this change they used long type as well.
6157
6158 The size of the `long` data type can be shorter than that of pointer
6159 types. This is the case most notably on Windows.
6160
6161 If C99 were acceptable, we could simply use `intptr_t` here. But we
6162 want to retain C89 compatibility.
6163
6164 Simply use the trick of performing pointer arithmetic with the NULL
6165 pointer: to convert an integer `i` to a pointer, simply take the
6166 address of the `i`th element of a hypothetical character array
6167 starting at address NULL. To convert back, simply cast the pointer
6168 difference.
6169
6170 Thanks to Jay Satiro for the initial modification to use curl_socket_t
6171 instead of int/long.
6172
6173 Closes #1617
6174
6175 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
6176
6177- [Ryan Winograd brought this change]
6178
6179 unit1399: fix integer overflow
6180
6181 Bug: #1616
6182 Closes #1633
6183
6184- [Per Malmberg brought this change]
6185
6186 cmake: Added compatibility options for older Windows versions
6187
6188 CURL_STATIC_CRT and ENABLE_INET_PTON
6189
6190 Closes #1621
6191
6192- unit1399: add logging to time comparison
6193
6194 ... to enable tracking down why autobuilds fail on this
6195
6196 Bug: #1616
6197
6198- make: build the docs subdir only from within src
6199
6200 ... and don't build at all in include
6201
6202 Prompted-by-work-by: Simon Warta
6203 Ref: #1590
6204 Closes #1591
6205
6206- [Max Dymond brought this change]
6207
6208 test1450: fix up DICT server in torture mode
6209
6210 As per https://github.com/curl/curl/pull/1615, the DICT server is a
6211 little spammy in torture mode due to the sockets being torn down
6212 unexpectedly. Fix this by adding some error handling to the handling
6213 function.
6214
6215 Closes #1629
6216
6217- [Max Dymond brought this change]
6218
6219 test1450: add simple testing for DICT
6220
6221 Add a new server which provides a DICT interface. This is intended to
6222 begin coverage testing for lib/dict.c
6223
6224 Closes #1615
6225
6226- [Dan Fandrich brought this change]
6227
6228 test1521: fix out-of-tree builds, broken with 467da3af
6229
6230 The test.h file is no longer in the same directory as the source file,
6231 so that directory needs to be added to the include path.
6232
6233 Fixes #1627
6234 Closes #1628
6235
6236- [Max Dymond brought this change]
6237
6238 http2: handle PING frames
6239
6240 Add a connection check function to HTTP2 based off RTSP. This causes
6241 PINGs to be handled the next time the connection is reused.
6242
6243 Closes #1521
6244
6245- [Max Dymond brought this change]
6246
6247 handler: refactor connection checking
6248
6249 Add a new type of callback to Curl_handler which performs checks on
6250 the connection. Alter RTSP so that it uses this callback to do its
6251 own check on connection health.
6252
Elliott Hughes0128fe42018-02-27 14:57:55 -08006253- [Dmitry Kostjuchenko brought this change]
Elliott Hughes82be86d2017-09-20 17:00:17 -07006254
6255 openssl: improve fallback seed of PRNG with a time based hash
6256
6257 Fixes #1620
6258
6259- [Ryan Winograd brought this change]
6260
6261 progress: prevent resetting t_starttransfer
6262
6263 Prevent `Curl_pgrsTime` from modifying `t_starttransfer` when invoked
6264 with `TIMER_STARTTRANSFER` more than once during a single request.
6265
6266 When a redirect occurs, this is considered a new request and
6267 `t_starttransfer` can be updated to reflect the `t_starttransfer` time
6268 of the redirect request.
6269
6270 Closes #1616
6271
6272 Bug: https://github.com/curl/curl/pull/1602#issuecomment-310267370
6273
6274- curl_strequal.3: fix typo in SYNOPSIS
6275
6276 Reported-by: Jesse Chisholm
6277
6278 Fixes #1623
6279
6280- RELEASE-NOTES: synced with ce2c3ebda
6281
6282Kamil Dudka (28 Jun 2017)
6283- curl --socks5-{basic,gssapi}: control socks5 auth
6284
6285 Closes https://github.com/curl/curl/pull/1454
6286
6287- CURLOPT_SOCKS5_AUTH: allowed methods for SOCKS5 proxy auth
6288
6289 If libcurl was built with GSS-API support, it unconditionally advertised
6290 GSS-API authentication while connecting to a SOCKS5 proxy. This caused
6291 problems in environments with improperly configured Kerberos: a stock
6292 libcurl failed to connect, despite libcurl built without GSS-API
6293 connected fine using username and password.
6294
6295 This commit introduces the CURLOPT_SOCKS5_AUTH option to control the
6296 allowed methods for SOCKS5 authentication at run time.
6297
6298 Note that a new option was preferred over reusing CURLOPT_PROXYAUTH
6299 for compatibility reasons because the set of authentication methods
6300 allowed by default was different for HTTP and SOCKS5 proxies.
6301
6302 Bug: https://curl.haxx.se/mail/lib-2017-01/0005.html
6303 Closes https://github.com/curl/curl/pull/1454
6304
6305- socks: deduplicate the code for auth request
6306
6307- socks: use proxy_user instead of proxy_name
6308
6309 ... to make it obvious what the data is used for
6310
6311Daniel Stenberg (27 Jun 2017)
6312- libtest/make: generate lib1521.c
6313
6314 ... instead of having the generated code checked in. This saves space in
6315 the tarball but primarily automatically adapts to newly added options.
6316
6317 Closes #1614
6318
6319Jay Satiro (26 Jun 2017)
6320- tool_getparam: fix memory leak on test 1147 OOM (torture tests)
6321
6322 Bug: https://github.com/curl/curl/pull/1486#issuecomment-310926872
6323 Reported-by: Dan Fandrich
6324
6325Dan Fandrich (25 Jun 2017)
6326- test1537: fixed memory leak on OOM
6327
6328Marcel Raad (25 Jun 2017)
6329- test1521: fix compiler warnings
6330
6331 The integer literal 3123123123 doesn't fit into a 32-bit signed
6332 integer, so GCC with 32-bit long warns in C90 mode:
6333 this decimal constant is unsigned only in ISO C90 [enabled by default]
6334 Fix this by using ULONG_MAX, which should fit in any curl_off_t and has
6335 the correct suffix to not issue any warnings.
6336 Also adds the missing CURLOPT_REQUEST_TARGET from commit
6337 9b167fd090f596eac828817d48c247eeae53407f.
6338
6339 Closes https://github.com/curl/curl/pull/1611
6340
6341Daniel Stenberg (24 Jun 2017)
6342- curl/system.h: add check for XTENSA for 32bit gcc
6343
6344 Reported-by: Neil Kolban
6345 Fixes: 1598
6346
6347- [Henrik S. Gaßmann brought this change]
6348
6349 winbuild: fix boringssl build
6350
6351 Compile with `WIN32_LEAN_AND_MEAN` which prevents `windows.h` from
6352 including too much clutter including `wincrypt.h` which in turn contains
6353 some preprocessor macros that clash with boringssl symbols.
6354
6355 Detect boringssl by checking the existance of `is_boringssl.h` and set
6356 the corresponding `HAVE_BORINGSSL` for compilation which is used in
6357 `ldap.c` to undefine the evil macros.
6358
6359 Closes #1610
6360
6361- progress: progress.timespent needs to be us
6362
6363 follow-up to 64ed44a815e4e to fix test 500 failures
6364
6365Marcel Raad (24 Jun 2017)
6366- curl-compilers.m4: fix unknown-warning-option on Apple clang
6367
6368 Since 5598b0bd63f690c151074494ce47ef872f004ab4, clang -v is used to
6369 detect the clang version. The version number was expected to come after
6370 the word "version". For Apple clang, this doesn't work as it has its
6371 own versioning scheme.
6372 The version number is now first searched after the string
6373 "based on LLVM". This works for Apple clang before version 7, and also
6374 for e.g. Ubuntu's clang up to version 3.7. If it's not found and the
6375 version string contains "Apple LLVM version", clang version 3.7 is
6376 assumed, which is the version that comes with Xcode 7. Otherwise, the
6377 version number is still expected after the word "version", which works
6378 for very old Apple clang versions.
6379
6380 Ref: https://trac.macports.org/wiki/XcodeVersionInfo
6381 Fixes https://github.com/curl/curl/issues/1606
6382 Closes https://github.com/curl/curl/pull/1607
6383
6384Daniel Stenberg (24 Jun 2017)
6385- progress: fix "time spent", broke in adef394ac
6386
6387- CURLINFO_REDIRECT_URL.3: mention the CURLOPT_MAXREDIRS case
6388
6389 ... supported since 7.54.1
6390
6391- maketgz: switch to -6e for xz
6392
6393 To reduce the memory requirement for decompress, and still do almost as
6394 good compression as with -9e.
6395
6396 Pointed-out-by: Dan Fandrich
6397
6398- libtest/Makefile: remove unused lib1541 variables
6399
6400- CONTRIBUTE.md: mention the out-of-tree build test too
6401
6402- maketgz: switch to xz instead of lzma
6403
6404 The compressed output size seems to be a tad bit smaller, but generally
6405 xz seems more preferred these days and is used directly by for example
6406 gentoo instead of bz2.
6407
6408 "Users of LZMA Utils should move to XZ Utils" =>
6409 https://tukaani.org/lzma/
6410
6411 Closes #1604
6412
6413- --request-target: instead of --strip-path-slash
6414
6415 ... and CURLOPT_REQUEST_TARGET instead of CURLOPT_STRIP_PATH_SLASH.
6416
6417 This option instead provides the full "alternative" target to use in the
6418 request, instead of extracting the path from the URL.
6419
6420 Test 1298 and 1299 updated accordingly.
6421
6422 Idea-by: Evert Pot
6423 Suggestion: https://daniel.haxx.se/blog/2017/06/19/options-with-curl/comment-page-1/#comment-18373
6424
6425 Closes #1593
6426
6427Marcel Raad (21 Jun 2017)
6428- lib1521: fix missing-variable-declarations clang warnings
6429
6430 Declare TU-local variables static.
6431
6432- travis: enable typecheck-gcc warnings
6433
6434 - switch debug and release configurations so that we get an optimized
6435 build with GCC 4.3+ as required by typecheck-gcc
6436 - enable warnings-as-errors for release builds
6437 (which have warnings disabled)
6438
6439 Closes https://github.com/curl/curl/pull/1595
6440
6441- typecheck-gcc: add support for CURLINFO_OFF_T
6442
6443 typecheck-gcc expected curl_socket_t instead of curl_off_t arguments
6444 for CURLINFO_OFF_T. Detected by test1521, unfortunately only when run
6445 locally.
6446
6447 Closes https://github.com/curl/curl/pull/1592
6448
6449Daniel Stenberg (21 Jun 2017)
6450- [Simon Warta brought this change]
6451
6452 ci: whitelist branches to avoid testing feature branches twice
6453
6454- [Gisle Vanem brought this change]
6455
6456 lib: fix the djgpp build
6457
6458 Bug: https://github.com/curl/curl/commit/73a2fcea0b4adea6ba342cd7ed1149782c214ae3#commitcomment-22655993
6459
6460Marcel Raad (20 Jun 2017)
6461- if2ip: fix compiler warning in ISO C90 mode
6462
6463 remote_scope_id is only used when both HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID
6464 and ENABLE_IPV6 are defined instead of only one of them.
6465
6466Daniel Stenberg (20 Jun 2017)
6467- travis: do the distcheck test build out-of-tree as well
6468
6469- http: add --strip-path-slash and CURLOPT_STRIP_PATH_SLASH
6470
6471 ... to enable sending "OPTIONS *" which wasn't possible previously.
6472
6473 This option currently only works for HTTP.
6474
6475 Added test cases 1298 + 1299 to verify
6476
6477 Fixes #1280
6478 Closes #1462
6479
6480- test1521: test getinfo's OFF_T types too
6481
6482 Closes #1588
6483
6484- lib1521: add curl_easy_getinfo calls to the test set
6485
6486 Also added return value checks to make sure no unexpected return codes
6487 are used.
6488
6489- [Simon Warta brought this change]
6490
6491 automake: use $(MKHELP) variable instead if constant mkhelp.pl
6492
6493 this improves symmetry with the rule above
6494
6495- [Simon Warta brought this change]
6496
6497 mkhelp.pl: fix script name in usage text
6498
6499- RELEASE-NOTES: synced with 3b80d3ca4
6500
6501- getinfo: return sizes as curl_off_t
6502
6503 This change introduces new alternatives for the existing six
6504 curl_easy_getinfo() options that return sizes or speeds as doubles. The
6505 new versions are named like the old ones but with an appended '_T':
6506
6507 CURLINFO_CONTENT_LENGTH_DOWNLOAD_T
6508 CURLINFO_CONTENT_LENGTH_UPLOAD_T
6509 CURLINFO_SIZE_DOWNLOAD_T
6510 CURLINFO_SIZE_UPLOAD_T
6511 CURLINFO_SPEED_DOWNLOAD_T
6512 CURLINFO_SPEED_UPLOAD_T
6513
6514 Closes #1511
6515
6516- PIPELINING_SERVER_BL: cleanup the internal list use
6517
6518 The list was freed incorrectly since the llist refactor of
6519 cbae73e1dd959. Added test 1550 to verify that it works and avoid future
6520 regressions.
6521
6522 Reported-by: Pascal Terjan
6523
6524 Fixes #1584
6525 Closes #1585
6526
6527- http2: fix OOM crash
6528
6529 torture mode with test 1021 found it
6530
6531- CURLOPT_PREQUOTE.3: spellfix man page reference
6532
6533Marcel Raad (18 Jun 2017)
6534- http_proxy: fix build with http and proxy
6535
6536 After deff7de0eb0e22d2d142b96b9cc84cd8db5d2a48, the build without
6537 CURL_DISABLE_PROXY and CURL_DISABLE_HTTP was failing because of missing
6538 includes.
6539
6540- http_proxy: fix compiler warning
6541
6542 With CURL_DISABLE_PROXY or CURL_DISABLE_HTTP, GCC complained about a
6543 missing prototype for Curl_connect_free.
6544
6545Daniel Stenberg (18 Jun 2017)
6546- TODO: update the TOC too
6547
6548- TODO: implement support for CURLOPT_PREQUOTE with SFTP
6549
6550 ... also updated the CURLOPT_PREQUOTE.3 man page to mention the correct
6551 protocol support.
6552
6553 Closes #1514
6554
6555- tool_wrte_cb: remove check for config == NULL
6556
6557 ... as it really cannot have reached this far with config being NULL,
6558 thus this is unnecesary and misleading.
6559
6560 Bug: https://news.ycombinator.com/item?id=14577585 and
6561 https://daniel.haxx.se/blog/2017/06/17/curl-doesnt-spew-binary-anymore/comment-page-1/#comment-18356
6562
6563 Forwarded-to-us-by: Jakub Wilk
6564
6565- curl: prevent binary output spewed to terminal
6566
6567 ... unless "--output -" is used. Binary detection is done by simply
6568 checking for a binary zero in early data.
6569
6570 Added test 1425 1426 to verify.
6571
6572 Closes #1512
6573
6574Marcel Raad (16 Jun 2017)
6575- Makefile.m32: enable -W for MinGW32 build
6576
6577 The configure-based build also has this in addition to -Wall.
6578
6579 Closes https://github.com/curl/curl/pull/1578
6580
6581- curl-compilers.m4: enable comma clang warning
6582
6583 It usually warns when using commas instead of semicolons or other
6584 operators by accident.
6585
6586 Closes https://github.com/curl/curl/pull/1578
6587
6588- curl-compilers.m4: enable missing-variable-declarations clang warning
6589
6590 It usually warns when forgetting to declare TU-local variables static.
6591
6592 Closes https://github.com/curl/curl/pull/1578
6593
6594- curl-compilers.m4: enable double-promotion warning
6595
6596 Enable -Wdouble-promotion for both GCC and clang. It warns on implicit
6597 promotion from float to double.
6598
6599 Closes https://github.com/curl/curl/pull/1578
6600
6601- curl-compilers.m4: enable vla warning for clang
6602
6603 Previously, that warning was only implicitly active in C90 mode.
6604 Enable it unconditionally as already done for GCC.
6605
6606 Closes https://github.com/curl/curl/pull/1578
6607
6608Daniel Stenberg (16 Jun 2017)
6609- http-proxy: fix chunked-encoded CONNECT responses
6610
6611 Regression since 5113ad0424.
6612
6613 ... and remove 'flaky' from test 1061 again
6614
6615 Closes #1579
6616
6617- http-proxy: deal with EAGAIN
6618
6619 ... the previous code would reset the header length wrongly (since
6620 5113ad0424). This makes test 1060 reliable again.
6621
6622 Also: make sws send even smaller chunks of data to increase the
6623 likeliness of this happening.
6624
6625- libtest/libntlmconnect: fix compiler warnings from f94fcdb
6626
6627- [Jay Satiro brought this change]
6628
6629 HTTPS-Proxy: don't offer h2 for https proxy connections
6630
6631 Bug: https://github.com/curl/curl/issues/1254
6632
6633 Closes #1546
6634
6635- tests: stabilize test 2032 and 2033
6636
6637 Both these tests run the same underlying test code: libntlmconnect.c -
6638 this test code made some assumptions about socket ordering when it used
6639 curl_easy_fdset() and when we changed timing or got accidental changes
6640 in libcurl the tests would fail.
6641
6642 The tests verify that the different transfers keep using the same
6643 connections, which I now instead made sure by adding the number of bytes
6644 each transfer gets and then verifies that they always get the same
6645 amount as when these tests worked.
6646
6647 Closes #1576
6648
6649- test1148: verify the -# progressbar
6650
6651 Closes #1569
6652
6653- test1061: mark as flaky
6654
6655 Fails intermittently on travis builds since a few days. Likely due to
6656 5113ad0424.
6657
6658Jay Satiro (16 Jun 2017)
6659- url: refactor the check for Windows drive letter in path
6660
6661 - Move the logic to detect a Windows drive letter prefix
6662 (eg c: in c:foo) into a function-like macro.
6663
6664 Closes https://github.com/curl/curl/pull/1571
6665
6666- mk-ca-bundle.pl: Check curl's exit code after certdata download
6667
6668 - No longer allow partial downloads of certdata.
6669
6670 Prior to this change partial downloads were (erroneously?) allowed since
6671 only the server code was checked to be 200.
6672
6673 Bug: https://github.com/curl/curl/pull/1577
6674 Reported-by: Matteo B.
6675
6676Daniel Stenberg (16 Jun 2017)
6677- dist: add the fuzz dir to the tarball
6678
6679- configure: disable nghttp2 too if HTTP has been disabled
6680
6681- http-proxy: fix build with --disable-proxy or --disable-http
6682
6683 Reported-by: Dan Fandrich
6684
6685- fuzz/README: document how to build
6686
6687 Fixes #1476
6688
6689- [Frederik B brought this change]
6690
6691 fuzz: corpora file structure, initial commit
6692
6693- [Frederik B brought this change]
6694
6695 fuzz: bring oss-fuzz initial code converted to C89
6696
6697- http-proxy: only attempt FTP over HTTP proxy
6698
6699 ... all other non-HTTP protocol schemes are now defaulting to "tunnel
6700 trough" mode if a HTTP proxy is specified. In reality there are no HTTP
6701 proxies out there that allow those other schemes.
6702
6703 Assisted-by: Ray Satiro, Michael Kaufmann
6704
6705 Closes #1505
6706
6707- TODO: the generated include file is gone
6708
6709 ... since commit 73a2fcea0b
6710
6711- curl_setup.h: error out on CURL_WANTS_CA_BUNDLE_ENV use
6712
6713 ... to make it really apparent if there's any user using this on purpose.
6714
6715 Suggested-by: Jay Satiro
6716
6717 Closes #1542
6718
6719- lib/curl_setup.h: remove CURL_WANTS_CA_BUNDLE_ENV
6720
6721 When this define was set, libcurl would check the environment variable
6722 named CURL_CA_BUNDLE at run-time and use that CA cert bundle. This
6723 feature was only defined by the watcom and m32 makefiles and caused
6724 inconsistent behaviours among libcurls built on different platforms.
6725
6726 The curl tool does already feature its own similar logic and the library
6727 does not really need it, and it isn't documented libcurl behavior. So
6728 this change removes it.
6729
6730 Ref: #1538
6731
6732- test1147: verify -H on a file
6733
6734- curl: allow --header and --proxy-header read from file
6735
6736 So many headers can be provided as @filename.
6737
6738 Suggested-by: Timothe Litt
6739
6740 Closes #1486
6741
6742- RELEASE-NOTES: synced with 2ad80eec5
6743
6744- curl/curlver.h: start working on 7.55.0
6745
6746- http-proxy: do the HTTP CONNECT process entirely non-blocking
6747
6748 Mentioned as a problem since 2007 (8f87c15bdac63) and of course it
6749 existed even before that.
6750
6751 Closes #1547
6752
6753- progress: let "current speed" be UL + DL speeds combined
6754
6755 Bug #1556
6756 Reported-by: Paul Harris
6757 Closes #1559
6758
6759Marcel Raad (14 Jun 2017)
6760- system.h: fix MinGW build
6761
6762 CURLSYS_PULL_WS2TCPIP_H got renamed to CURL_PULL_WS2TCPIP_H in commit
6763 73a2fcea0b4adea6ba342cd7ed1149782c214ae3.
6764
6765Daniel Stenberg (14 Jun 2017)
6766- timers: store internal time stamps as time_t instead of doubles
6767
6768 This gives us accurate precision and it allows us to avoid storing "no
6769 time" for systems with too low timer resolution as we then bump the time
6770 up to 1 microsecond. Should fix test 573 on windows.
6771
6772 Remove the now unused curlx_tvdiff_secs() function.
6773
6774 Maintains the external getinfo() API with using doubles.
6775
6776 Fixes #1531
6777
6778- dist: make the hugehelp.c not get regenerated unnecessarily
6779
6780 The maketgz script now makes sure the generated hugehelp.c file in the
6781 tarball is newer than the generated curl.1 man page, so that it doesn't
6782 have to get unnecessarily rebuilt first thing in a typical build. It
6783 thus also removes the need for perl to build off a plain release
6784 tarball.
6785
6786 Fixes #1565
6787
6788- includes: remove curl/curlbuild.h and curl/curlrules.h
6789
6790 Rely entirely on curl/system.h now.
6791
6792 Introduced in Aug 2008 with commit 14240e9e109f. Now gone.
6793
6794 Fixes #1456
6795
6796Version 7.54.1 (14 Jun 2017)
6797
6798Daniel Stenberg (14 Jun 2017)
6799- release: 7.54.1
6800
6801Dan Fandrich (13 Jun 2017)
6802- mk-lib1521.pl: updated to match the test changes in 916ec30a
6803
6804Daniel Stenberg (13 Jun 2017)
6805- [Stuart Henderson brought this change]
6806
6807 libressl: OCSP and intermediate certs workaround no longer needed
6808
6809 lib/vtls/openssl.c has a workaround for a bug with OCSP responses signed
6810 by intermediate certs, this was fixed in LibreSSL in
6811 https://github.com/libressl-portable/openbsd/commit/912c64f68f7ac4f225b7d1fdc8fbd43168912ba0
6812
6813 Bug: https://curl.haxx.se/mail/lib-2017-06/0038.html
6814
6815- url: fix buffer overwrite with file protocol (CVE-2017-9502)
6816
6817 Bug: https://github.com/curl/curl/issues/1540
6818 Advisory: https://curl.haxx.se/docs/adv_20170614.html
6819
6820 Assisted-by: Ray Satiro
6821 Reported-by: Marcel Raad
6822
6823- urlglob: fix division by zero
6824
6825 The multiply() function that is used to avoid integer overflows, was
6826 itself reason for a possible division by zero error when passed a
6827 specially formatted glob.
6828
6829 Reported-by: GwanYeong Kim
6830
6831- configure: update the copyright year in the output
6832
6833- [ygrek brought this change]
6834
6835 BINDINGS: update SP-Forth and OCaml urls
6836
6837Michael Kaufmann (11 Jun 2017)
6838- FindWin32CACert: Use a temporary buffer on the stack
6839
6840 Don't malloc() the temporary buffer, and use the correct type:
6841 SearchPath() works with TCHAR, but SearchPathA() works with char.
6842 Set the buffer size to MAX_PATH, because the terminating null byte
6843 is already included in MAX_PATH.
6844
6845 Reviewed-by: Daniel Stenberg
6846 Reviewed-by: Marcel Raad
6847
6848 Closes #1548
6849
6850Dan Fandrich (11 Jun 2017)
6851- test1521: fixed OOM handling
6852
6853Daniel Stenberg (9 Jun 2017)
6854- RELEASE-PROCEDURE: updated future release dates
6855
6856- [Paul Harris brought this change]
6857
6858 gitignore: ignore all vim swap files
6859
6860 Closes #1561
6861
6862- lib1521: fix compiler warnings on the use of bad 'long' values
6863
6864 Reported-by: Marcel Raad
6865 Bug: https://github.com/curl/curl/commit/cccac4fb2b20d6ed87da7978408c3ecacc464fe4#commitcomment-22453387
6866
6867- setopt: check CURLOPT_ADDRESS_SCOPE option range
6868
6869 ... and return error instead of triggering an assert() when being way
6870 out of range.
6871
6872Jay Satiro (8 Jun 2017)
6873- [TheAssassin brought this change]
6874
6875 cmake: Fix inconsistency regarding mbed TLS include directory
6876
6877 Previously, one had to set MBEDTLS_INCLUDE_DIR to make CMake find the
6878 headers, but the system complained that mbed TLS wasn't found due to
6879 MBEDTLS_INCLUDE_DIRS (note the trailing s) was not set. This commit
6880 attempts to fix that.
6881
6882 Closes https://github.com/curl/curl/pull/1541
6883
6884Daniel Stenberg (8 Jun 2017)
6885- [Ryuichi KAWAMATA brought this change]
6886
6887 examples/multi-uv.c: fix deprecated symbol
6888
6889 Closes #1557
6890
6891- asyn-ares: s/Curl_expire_latest/Curl_expire
6892
6893- expire: remove Curl_expire_latest()
6894
6895 With the introduction of expire IDs and the fact that existing timers
6896 can be removed now and thus never expire, the concept with adding a
6897 "latest" timer is not working anymore as it risks to not expire at all.
6898
6899 So, to be certain the timers actually are in line and will expire, the
6900 plain Curl_expire() needs to be used. The _latest() function was added
6901 as a sort of shortcut in the past that's quite simply not necessary
6902 anymore.
6903
6904 Follow-up to 31b39c40cf90
6905
6906 Reported-by: Paul Harris
6907
6908 Closes #1555
6909
6910- [Chris Carlmar brought this change]
6911
6912 configure: fix link with librtmp when specifying path
6913
6914 Bug: https://curl.haxx.se/mail/lib-2017-06/0017.html
6915
6916- file: make speedcheck use current time for checks
6917
6918 ... as it would previously just get the "now" timestamp before the
6919 transfer starts and then not update it again.
6920
6921 Closes #1550
6922
6923- metalink: remove unused printf() argument
6924
6925- travis: let some builds *not* use --enable-debug
6926
6927 typecheck-gcc and other things require optimized builds
6928
6929 Closes #1544
6930
6931- README.md: show the coverall coverage on github
6932
6933- lib1521: fix compiler warnings
6934
6935- test1521: make the code < 80 columns wide
6936
6937- test1121: use stricter types to work with typcheck-gcc
6938
6939- typecheck-gcc: allow CURLOPT_STDERR to be NULL too
6940
6941- test1521: test *all* curl_easy_setopt options
6942
6943 mk-lib1521.pl generates a test program (lib1521.c) that calls
6944 curl_easy_setopt() for every known option with a few typical values to
6945 make sure they work (ignoring the return codes).
6946
6947 Some small changes were necessary to avoid asserts and NULL accesses
6948 when doing this.
6949
6950 The perl script needs to be manually rerun when we add new options.
6951
6952 Closes #1543
6953
6954Dan Fandrich (5 Jun 2017)
6955- test1538: added "verbose logs" keyword
6956
6957 These error messages are not displayed with --disable-verbose
6958
6959Daniel Stenberg (5 Jun 2017)
6960- test1262: verify ftp download with -z for "if older than this"
6961
6962Marcel Raad (5 Jun 2017)
6963- curl_ntlm_core: use Curl_raw_toupper instead of toupper
6964
6965 This was the only remaining use of toupper in the entire source code.
6966
6967 Suggested-by: Daniel Stenberg
6968
6969Daniel Stenberg (4 Jun 2017)
6970- RELEASE-NOTES: synced with 65ba92650